VM インスタンスの作成と開始

ブートディスク イメージまたはブートディスク スナップショットを使用して仮想マシン(VM)インスタンスを作成します。1 つ以上のディスクを含む VM を作成することも、後でディスクを追加することもできます。Google Distributed Cloud(GDC)エアギャップは、VM インスタンスの作成時に自動的に起動します。

インスタンスの作成前または作成後に、VM インスタンスに起動スクリプトを追加することもできます。

このドキュメントは、GDC 環境で VM を作成して管理するプラットフォーム管理者グループまたはアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。

始める前に

gdcloud コマンドライン インターフェース(CLI)コマンドを使用するには、gdcloud CLI をダウンロード、インストール、構成していることを確認してください。Distributed Cloud のすべてのコマンドは gdcloud または kubectl CLI を使用し、オペレーティング システム(OS)環境を必要とします。

kubeconfig ファイルのパスを取得する

Management API サーバーに対してコマンドを実行するには、次のリソースが必要です。

  1. Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。

  2. これらの手順では、MANAGEMENT_API_SERVER を Management API サーバーの kubeconfig ファイルのパスに置き換えます。

VM の命名ガイドライン

VM インスタンスを作成する際は、次の命名ガイドラインを参照してください。

  • VM 名に使用できるのは英数字とダッシュのみです。
  • 英数字とダッシュ以外の記号(ピリオドなど)を使用すると、VM への接続に失敗します。
  • VM 名は 53 文字以下にする必要があります。

IAM ロールをリクエストする

VM インスタンスの作成と起動に必要な権限を取得するには、プロジェクトに対する次のロールを付与するようプロジェクト IAM 管理者に依頼してください。

  • 仮想マシン プロジェクト管理者(project-vm-admin): プロジェクトの名前空間で VM を作成、変更、一覧表示、削除します。

  • プロジェクト閲覧者(project-viewer): プロジェクトの名前空間内のすべてのリソースを表示します。

  • 仮想マシン イメージ プロジェクト管理者(project-vm-image-admin): プロジェクトの名前空間で、GDC 提供のカスタム VM イメージを作成、一覧表示、削除します。

すべての VM ロールは、VM が存在するプロジェクトの Namespace にバインドする必要があります。手順に沿ってアクセス権を確認します。

イメージから VM インスタンスを作成する

このセクションでは、GDC 提供の OS イメージまたはカスタム OS イメージから VM を作成する方法について説明します。

利用可能な GDC 提供のイメージのリストを表示する

GDC 提供のイメージを使用して VM を作成する前に、使用可能なイメージのリストを確認してください。GDC 提供のイメージの詳細については、サポートされている VM イメージをご覧ください。

gdcloud

  • 使用可能なすべてのイメージとその最小ディスクサイズを一覧表示します。

    gdcloud compute images list
    

    このコマンドには、GDC 提供のイメージとカスタム イメージの両方が含まれます。vm-system 名前空間のいずれかのイメージを選択します。

API

  1. 利用可能なすべての GDC 提供イメージを一覧表示します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog
    
  2. 特定の GDC 提供イメージの minimumDiskSize を取得します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog BOOT_DISK_IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    次のように置き換えます。

    • MANAGEMENT_API_SERVER: Management API サーバーの kubeconfig ファイル。
    • BOOT_DISK_IMAGE_NAME: イメージの名前。

GDC 提供のイメージから VM インスタンスを作成する

デフォルトでは、すべての GDC プロジェクトで、GDC 提供の OS イメージから VM を作成できます。

コンソール

  1. ナビゲーション メニューで、[Virtual Machines] > [Instances] を選択します。
  2. [インスタンスを作成] をクリックします。
  3. [名前] フィールドに、VM の名前を指定します。
  4. VM を作成するゾーンを選択します。
  5. 省略可: [ラベルを追加] をクリックして、VM にラベルを割り当てます。これは、VM インスタンスを整理する際に役立ちます。
  6. VM に使用するマシン構成を選択します。
    1. 汎用: マシンタイプがワークロードの要件に合っていることを確認します。
    2. カスタム: マシンのコア数とメモリ要件を設定します。
  7. [次へ] をクリックします。
  8. 外部アクセスを有効にする場合は、[外部アクセスを許可する] を選択します。
  9. [次へ] をクリックします。
  10. [ブートディスク] セクションで、GDC はデフォルト構成のブートディスクを自動的に追加します。この構成をそのまま使用することも、[変更] をクリックしてデフォルトの構成を変更することもできます。
    1. [ディスクの詳細] セクションで、[ディスク名] を変更します。
    2. [ディスクの設定] セクションで、[サイズ] の値を変更します。
    3. [ソース画像] セクションで、[画像名] メニューをクリックし、いずれかの画像を選択します。
    4. [セキュアブートをオンにする] をオンまたはオフにします。Windows イメージを使用する場合は、セキュアブートを有効にする必要があります。
    5. [ディスクを保持] または [ディスクを削除] を選択して、ディスク削除ルールを構成します。
    6. [保存] をクリックします。
  11. [作成] をクリックして VM インスタンスを作成します。

gdcloud

  1. GDC 提供のイメージを選択して、ターゲット ゾーンに VM インスタンスを作成します。

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=vm-system \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    次のように置き換えます。

    変数定義
    VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
    MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
    gdcloud compute machine-types list
    BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
    BOOT_DISK_SIZE ブートディスクのサイズ(20GB など)。
    この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
    NO_BOOT_DISK_AUTO_DELETE VM インスタンスを削除するときにブートディスクを保持するには true を指定します。ブートディスクを自動的に削除するには false を指定します。

API

  1. GDC 提供のイメージを選択して、ターゲット ゾーンに VM インスタンスを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    次のように置き換えます。

    変数定義
    MANAGEMENT_API_SERVER 管理 API サーバーの kubeconfig ファイル。
    PROJECT VM を作成する GDC プロジェクト。
    VM_BOOT_DISK_NAME 新しい VM ブートディスクの名前。
    BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
    BOOT_DISK_SIZE ブートディスクのサイズ(20Gi など)。
    この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
    VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
    MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
    BOOT_DISK_AUTO_DELETE VM インスタンスの削除時にブートディスクを自動的に削除するには true を指定します。保持するには false を指定します。
  2. VM が正常に作成されたことを確認し、VM が Running 状態になるまで待ちます。Running 状態は、OS が完全に準備され、アクセス可能であることを示すものではありません。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    VM_NAME と PROJECT は、VM の名前とプロジェクトに置き換えます。

    VM インスタンスの作成に起動スクリプトを追加するには、VM インスタンスで起動スクリプトを使用するページの手順に沿って操作します。スクリプトを追加する前に、VM をシャットダウンしてください。

カスタム イメージから VM インスタンスを作成する

カスタム イメージは、プロジェクトにのみ属します。カスタム イメージを使用して VM を作成するには、まず同じプロジェクトにカスタム イメージを作成する必要があります。

コンソール

  1. ナビゲーション メニューで、[Virtual Machines] > [Instances] を選択します。
  2. [インスタンスを作成] をクリックします。
  3. [名前] フィールドに、VM の名前を指定します。
  4. VM を作成するゾーンを選択します。
  5. 省略可: [ラベルを追加] をクリックして、VM にラベルを割り当てます。これは VM インスタンスの整理に役立ちます。
  6. VM に使用するマシン構成を選択します。
    1. 汎用: マシンタイプがワークロードの要件に合っていることを確認します。
    2. カスタム: マシンのコア数とメモリ要件を設定します。
  7. [次へ] をクリックします。
  8. [外部アクセスを許可する] チェックボックスをオンにして、VM インスタンスの外部アクセスを有効にします。
  9. [次へ] をクリックします。
  10. [ブートディスク] セクションで、GDC はデフォルト構成のブートディスクを自動的に追加します。この構成をそのまま使用することも、[変更] をクリックしてデフォルトの構成を変更することもできます。

    1. [ディスクの詳細] セクションで、[ディスク名] を変更します。
    2. [ディスクの設定] セクションで、[サイズ] の値を変更します。
    3. [ソースイメージ] セクションで、[イメージ名] メニューをクリックし、[お客様が作成] というサブテキストが付いたイメージのいずれかを選択します。
    4. [セキュアブートをオンにする] をオンまたはオフにします。Windows イメージを使用する場合は、セキュアブートを有効にする必要があります。

    5. [ディスクを維持] または [ディスクを削除] を選択して、ディスク削除ルールを構成します。

    6. [保存] をクリックします。

  11. [作成] をクリックして VM インスタンスを作成します。

gdcloud

  1. すべてのカスタム イメージを一覧表示します。

    gdcloud compute images list --no-standard-images=true
    
  2. VM インスタンスを作成します。

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    次のように置き換えます。

    変数定義
    VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
    MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
    gdcloud compute machine-types list
    BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
    BOOT_DISK_SIZE ブートディスクのサイズ(20GB など)。
    この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
    NO_BOOT_DISK_AUTO_DELETE VM インスタンスを削除するときにブートディスクを保持するには true を指定します。ブートディスクを自動的に削除するには false を指定します。

API

  1. すべてのカスタム イメージを一覧表示します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog
    

    特定のイメージの minimumDiskSize を取得して、VM インスタンスを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog BOOT_DISK_IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    次のように置き換えます。

    変数定義
    MANAGEMENT_API_SERVER 管理 API サーバーの kubeconfig ファイル。
    PROJECT イメージのプロジェクト。
    BOOT_DISK_IMAGE_NAME カスタム イメージの名前。
  2. VM インスタンスを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    次のように置き換えます。

    変数定義
    MANAGEMENT_API_SERVER 管理 API サーバーの kubeconfig ファイル。
    PROJECT VM を作成する GDC プロジェクト。
    VM_BOOT_DISK_NAME 新しい VM ブートディスクの名前。
    BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
    BOOT_DISK_SIZE ブートディスクのサイズ(20Gi など)。
    この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
    VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
    MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
    BOOT_DISK_AUTO_DELETE VM インスタンスの削除時にブートディスクを自動的に削除するには true を指定します。保持するには false を指定します。
  3. VM が正常に作成されたことを確認し、VM が Running 状態になるまで待ちます。Running 状態は、OS が完全に準備され、アクセス可能であることを意味するものではありません。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    VM_NAME と PROJECT は、VM の名前とプロジェクトに置き換えます。

追加の非ブートディスクを含む VM インスタンスを作成する

VM の作成時に非ブートディスクを作成できます。追加のディスクごとに、イメージソースを指定するかどうかを選択できます。後者のケースは、空のディスクを作成する場合です。

コンソール

  1. ナビゲーション メニューで、[Virtual Machines] > [Instances] を選択します。
  2. [インスタンスを作成] をクリックします。
  3. [名前] フィールドに、VM の名前を指定します。
  4. VM を作成するゾーンを選択します。
  5. 省略可: [ラベルを追加] をクリックして、VM にラベルを割り当てます。これは VM インスタンスの整理に役立ちます。
  6. VM に使用するマシン構成を選択します。
    1. 汎用: マシンタイプがワークロードの要件に合っていることを確認します。
    2. カスタム: マシンのコア数とメモリ要件を設定します。
  7. [次へ] をクリックします。
  8. [外部アクセスを許可する] チェックボックスをオンにして、VM インスタンスの外部アクセスを有効にします。
  9. [次へ] をクリックします。
  10. [ブートディスク] セクションで、GDC はデフォルト構成のブートディスクを自動的に追加します。この構成をそのまま使用することも、[変更] をクリックしてデフォルトの構成を変更することもできます。
    1. [ディスクの詳細] セクションで、[ディスク名] を変更します。
    2. [ディスクの設定] セクションで、[サイズ] の値を変更します。
    3. [ソース画像] セクションで、[画像名] メニューをクリックし、いずれかの画像を選択します。
    4. [セキュアブートをオンにする] をオンまたはオフにします。Windows イメージを使用する場合は、セキュアブートを有効にする必要があります。
    5. [ディスクを保持] または [ディスクを削除] を選択して、ディスク削除ルールを構成します。
    6. [保存] をクリックします。
  11. VM インスタンスにディスクを追加するには、[新しいディスクを追加] を選択します。
    1. VM ディスクに名前を割り当てます。
    2. ディスクサイズとアタッチメントの設定を構成します。
    3. [保存] をクリックします。
  12. [作成] をクリックして VM インスタンスを作成します。

gdcloud

  1. イメージからブートディスクを作成する:

    gdcloud compute disks create VM_BOOT_DISK_NAME \
      --size=BOOT_DISK_SIZE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=BOOT_DISK_IMAGE_NAMESPACE
    
  2. イメージから追加の非ブートディスクを作成します。

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
      --size=NON_BOOT_DISK_SIZE \
      --image=NON_BOOT_DISK_IMAGE_NAME \
      --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  3. 空の非ブートディスクを作成します。

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
      --size=NON_BOOT_BLANK_DISK_SIZE
    
  4. 前の手順のディスクを使用してインスタンスを作成します。

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --disk=name=VM_BOOT_DISK_NAME,boot=true \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
      --disk=name=NON_BOOT_DISK_FROM_IMAGE \
      --disk=name=NON_BOOT_BLANK_DISK
    

    次のように置き換えます。

    変数定義
    VM_BOOT_DISK_NAME 新しい VM ブートディスクの名前。
    BOOT_DISK_SIZE ブートディスクのサイズ(20GB など)。
    この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
    BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
    BOOT_DISK_IMAGE_NAMESPACE 新しい VM ブートディスクに使用するイメージの名前空間。GDC 提供のイメージの場合は vm-system を使用します。カスタム イメージの場合は、このフィールドを空白のままにします。
    NON_BOOT_DISK_FROM_IMAGE イメージから作成する追加の非ブートディスクの名前。
    NON_BOOT_DISK_SIZE 追加の非ブートディスクのサイズ(例: 20GB)。
    NON_BOOT_DISK_IMAGE_NAME 非ブートディスクに使用するイメージの名前。
    NON_BOOT_DISK_IMAGE_NAMESPACE 非ブートディスクに使用するイメージの名前空間。GDC 提供のイメージの場合は vm-system を使用します。カスタム イメージの場合は、このフィールドを空白のままにします。
    NON_BOOT_BLANK_DISK 追加の空の非ブートディスクの名前。
    NON_BOOT_BLANK_DISK_SIZE 追加の空の非ブートディスクのサイズ(例: 20GB)。
    VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
    MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
    gdcloud compute machine-types list
    NO_BOOT_DISK_AUTO_DELETE VM インスタンスを削除するときにブートディスクを保持するには true を指定し、ブートディスクを自動的に削除するには false を指定します。

API

  1. 非ブートディスクを含む VM を作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_DISK_FROM_IMAGE
    spec:
      source:
        image:
          name: NON_BOOT_DISK_IMAGE_NAME
          namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
      size: NON_BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_BLANK_DISK
    spec:
      size: NON_BOOT_BLANK_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: BOOT_DISK_IMAGE_NAMESPACE
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
      - virtualMachineDiskRef:
          name: NON_BOOT_DISK_FROM_IMAGE
      - virtualMachineDiskRef:
          name: NON_BOOT_BLANK_DISK
    EOF
    

    次のように置き換えます。

    変数定義
    MANAGEMENT_API_SERVER 管理 API サーバーの kubeconfig ファイル。
    PROJECT VM に作成する GDC プロジェクト。
    NON_BOOT_DISK_FROM_IMAGE イメージから作成する追加の非ブートディスクの名前。
    NON_BOOT_DISK_IMAGE_NAME 非ブートディスクに使用するイメージの名前。
    NON_BOOT_DISK_IMAGE_NAMESPACE 非ブートディスクに使用するイメージの名前空間。GDC 提供のイメージの場合は vm-system を使用し、カスタム イメージの場合は空白にします。
    NON_BOOT_DISK_SIZE イメージから作成する追加の非ブートディスクのサイズ(例: 20Gi)。
    NON_BOOT_BLANK_DISK 追加の空の非ブートディスクの名前。
    NON_BOOT_BLANK_DISK_SIZE 追加の空の非ブートディスクのサイズ(例: 20Gi)。
    VM_BOOT_DISK_NAME 新しい VM ブートディスクの名前。
    BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
    BOOT_DISK_IMAGE_NAMESPACE 新しい VM ブートディスクに使用するイメージの名前空間。GDC 提供のイメージには名前空間 vm-system を使用し、カスタム イメージには空白を使用します。
    BOOT_DISK_SIZE ブートディスクのサイズ(20Gi など)。
    この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
    VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
    MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
    BOOT_DISK_AUTO_DELETE VM インスタンスの削除時にブートディスクを自動的に削除するには true を指定します。保持するには false を指定します。

    ディスクを使用する前に、ディスクをフォーマットしてマウントします。

スナップショットまたはバックアップから VM を作成する

次の方法で、スナップショットから新しい VM を作成できます。

  • VM ブートディスクを復元する: スナップショットで VM のブートディスクをバックアップした場合は、そのスナップショットを使用して新しい VM を作成します。詳細については、スナップショットを復元するをご覧ください。
    • 非ブートディスクを復元する: スナップショットで非ブートディスクをバックアップしている場合は、VM を作成する際に同じ手順でスナップショットを新しい非ブートディスクに復元することもできます。

同じブートディスクを使用して複数の VM を作成するには、次の操作を行います。

  1. カスタム イメージを作成する。
  2. スナップショットを使用せずに、そのイメージから VM を作成します。

指定した IP アドレスとサブネットを持つ VM インスタンスを作成する

デフォルトでは、ネットワーク仕様なしで GDC VM を作成できます。このタイプの VM はデフォルトの VPC に接続し、デフォルトのサブネットから IP アドレスを動的に割り当てます。デフォルト構成で VM を作成するには、GDC 提供のイメージを使用して VM を作成するをご覧ください。

GDC VM のデフォルトの IP アドレス構成を使用しない場合は、動的 IP アドレスまたは静的 IP アドレスを使用して VM を作成できます。

  • カスタム サブネットの動的 IP アドレス: 特定の CIDR を持つサブネットを作成し、その CIDR から動的に割り当てられた IP アドレスを持つ VM を作成します。

  • カスタム サブネットの静的 IP アドレス: 特定の CIDR を持つサブネットを作成し、その CIDR の静的 IP アドレスを持つ VM を作成します。

サブネットの作成の詳細については、GDC のサブネットと IP アドレスをご覧ください。

このセクションでは、動的に割り当てられた IP アドレスまたは静的 IP アドレスを使用して VM を作成する方法について説明します。

カスタム サブネットから動的に割り当てられた IP アドレスを持つ VM を作成する

特定の CIDR から動的に割り当てられた IP アドレスを持つ VM を作成します。

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
     -n PROJECT \
     apply -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
     - virtualMachineDiskRef:
         name: VM_BOOT_DISK_NAME
       boot: true
       autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - network: NETWORK_NAME
         subnet: SUBNET_NAME
   EOF

次の変数を置き換えます。

変数定義
MANAGEMENT_API_SERVER 管理 API サーバーの kubeconfig ファイル。
PROJECT VM を作成する GDC プロジェクト。
VM_BOOT_DISK_NAME 新しい VM ブートディスクの名前。
BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
BOOT_DISK_SIZE ブートディスクのサイズ(20Gi など)。
この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択します。
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
BOOT_DISK_AUTO_DELETE VM インスタンスの削除時にブートディスクを自動的に削除するには true を指定し、保持するには false を指定します。
NETWORK_NAME VPC ネットワークの名前(default など)。
SUBNET_NAME カスタム サブネットの名前。

サブネットの静的 IP アドレスを使用して VM を作成する

カスタム サブネットの静的 IP アドレスを使用して VM を作成します。

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
     -n PROJECT \
     apply  -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
     - virtualMachineDiskRef:
         name: VM_BOOT_DISK_NAME
       boot: true
       autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - network: NETWORK_NAME
         subnet: SUBNET_NAME
         ipAddresses:
         - address: IP_ADDRESS
   EOF

次の変数を置き換えます。

変数定義
MANAGEMENT_API_SERVER 管理 API サーバーの kubeconfig ファイル。
PROJECT VM を作成する GDC プロジェクト。
VM_BOOT_DISK_NAME 新しい VM ブートディスクの名前。
BOOT_DISK_IMAGE_NAME 新しい VM ブートディスクに使用するイメージの名前。
BOOT_DISK_SIZE ブートディスクのサイズ(20Gi など)。
この値は、常にブートディスク イメージの minimumDiskSize 以上にする必要があります。
VM_NAME 新しい VM の名前。名前には、最大 53 文字の英数字とダッシュを使用できます。
MACHINE_TYPE 新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
BOOT_DISK_AUTO_DELETE VM インスタンスの削除時にブートディスクを自動的に削除するには true を指定し、保持するには false を指定します。
NETWORK_NAME VPC ネットワークの名前(default など)。
SUBNET_NAME カスタム サブネットの名前。
IP_ADDRESS IP アドレス。これは、選択したサブネット範囲内である必要があります。ipAddresses フィールドに指定できる IP アドレスは 1 つだけです。

次のステップ