このページでは、ブートディスク イメージまたはブートディスク スナップショットを使用して仮想マシン(VM)インスタンスを作成する手順について説明します。
1 つ以上のディスクを含む VM を作成できます。作成後に VM にディスクを追加することもできます。Google Distributed Cloud(GDC)エアギャップ アプライアンスは、作成後に VM インスタンスを自動的に起動します。
起動スクリプトは、VM の作成前または作成後に追加できます。起動スクリプトの詳細については、VM インスタンスで起動スクリプトを使用するをご覧ください。
始める前に
gdcloud
コマンドライン インターフェース(CLI)コマンドを使用するには、gdcloud
CLI をダウンロード、インストール、構成していることを確認してください。GDC エアギャップ アプライアンスのすべてのコマンドは gdcloud
または kubectl
CLI を使用し、オペレーティング システム(OS)環境が必要です。
kubeconfig ファイルのパスを取得する
Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。
Management API サーバー名を確認するか、プラットフォーム管理者(PA)にサーバー名を確認します。
Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。
この手順では、パスを使用して
MANAGEMENT_API_SERVER{"</var>"}}
を置き換えます。
権限とアクセス権をリクエストする
このページに記載されているタスクを行うには、プロジェクトの VirtualMachine 管理者ロールが必要です。次の手順に沿って、確認するか、プロジェクト IAM 管理者に VM が存在するプロジェクトの Namespace でプロジェクト VirtualMachine 管理者(project-vm-admin
)ロールを割り当ててもらいます。
GDC コンソールまたは gdcloud CLI を使用する VM オペレーションの場合は、プロジェクト IAM 管理者に、プロジェクトの VirtualMachine 管理者ロールとプロジェクト閲覧者(project-viewer
)ロールの両方を割り当てるよう依頼します。
イメージから VM インスタンスを作成する
このセクションでは、GDC 提供の OS イメージまたはカスタム OS イメージから VM を作成する方法について説明します。
利用可能な GDC 提供のイメージのリストを表示する
GDC 提供のイメージを使用して VM を作成する前に、使用可能なイメージのリストを確認します。
gdcloud
使用可能なすべてのイメージとその最小ディスクサイズを一覧表示します。
gdcloud compute images list
このコマンドには、GDC 提供のイメージとカスタム イメージの両方が含まれます。vm-system
Namespace のいずれかのイメージを選択します。
API
利用可能な GDC 提供のイメージをすべて一覧表示します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
特定の GDC 提供イメージの
minimumDiskSize
を取得します。kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \ BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
次のように置き換えます。
MANAGEMENT_API_SERVER
と Management API サーバーのkubeconfig
。BOOT_DISK_IMAGE_NAME
は、イメージの名前に置き換えます。
GDC 提供のイメージから VM インスタンスを作成する
デフォルトでは、すべての GDC プロジェクトで GDC 提供の OS イメージから VM を作成できます。
gdcloud
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 文字以下にする必要があります。 |
BOOT_DISK_IMAGE_NAME |
新しい VM のブートディスクに使用するイメージの名前。 |
BOOT_DISK_SIZE |
ブートディスクのサイズ(20G など)。この値は、常にブートディスク イメージの minimumDiskSize 以上である必要があります。 |
NO_BOOT_DISK_AUTO_DELETE |
true または false 。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかの逆を示します。 |
MACHINE_TYPE |
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
gdcloud compute machine-types list
|
API
GDC エアギャップ アプライアンスで提供されるイメージを選択して、VM インスタンスを作成します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -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
Management API サーバーの kubeconfig
パス。PROJECT
VM を作成する GDC エアギャップ アプライアンス プロジェクト。 VM_NAME
新しい VM の名前。名前には英数字とダッシュのみを使用でき、53 文字以下にする必要があります。 VM_BOOT_DISK_NAME
新しい VM ブートディスクの名前。 BOOT_DISK_IMAGE_NAME
新しい VM のブートディスクに使用するイメージの名前。 BOOT_DISK_SIZE
ブートディスクのサイズ( 20G
など)。
この値は、常にブートディスク イメージのminimumDiskSize
以上である必要があります。BOOT_DISK_AUTO_DELETE
true
またはfalse
。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかを示します。MACHINE_TYPE
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
gdcloud compute machine-types list
VM が作成されたことを確認し、VM が
Running
状態になるまで待ちます。Running
状態は、OS が完全に準備完了してアクセス可能であることを示すものではありません。kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
VM_NAME
とPROJECT
は、VM の名前とプロジェクトに置き換えます。VM_NAME
に使用できるのは英数字とダッシュのみです。VM インスタンスの作成に起動スクリプトを追加するには、VM インスタンスで起動スクリプトを使用するページの手順に沿って操作します。スクリプトを追加する前に、VM をシャットダウンしてください。
カスタム イメージから VM インスタンスを作成する
カスタム イメージは、自分のプロジェクトにのみ属します。カスタム イメージで VM を作成するには、まず、同じプロジェクトにカスタム イメージを作成する必要があります。
gdcloud
-
gdcloud compute images list --no-standard-images=true
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 文字以下にする必要があります。 BOOT_DISK_IMAGE_NAME
新しい VM のブートディスクに使用するイメージの名前。 BOOT_DISK_SIZE
ブートディスクのサイズ( 20G
など)。
この値は、常にブートディスク イメージのminimumDiskSize
以上である必要があります。NO_BOOT_DISK_AUTO_DELETE
true
またはfalse
。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかの逆を示します。MACHINE_TYPE
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
gdcloud compute machine-types list
API
すべてのカスタム イメージを一覧表示します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
特定のイメージの
minimumDiskSize
を取得して、VM インスタンスを作成します。kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \ BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
次のように置き換えます。
変数 定義 MANAGEMENT_API_SERVER
Management API サーバーの kubeconfig
パス。BOOT_DISK_IMAGE_NAME
すべてのカスタム イメージを一覧表示するコマンドから選択したイメージの名前。 PROJECT
イメージのプロジェクト。 VM インスタンスを作成します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -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
Management API サーバーの kubeconfig
ファイル。PROJECT
VM を作成する GDC エアギャップ アプライアンス プロジェクト。 VM_NAME
新しい VM の名前。名前には英数字とダッシュのみを使用でき、53 文字以下にする必要があります。 VM_BOOT_DISK_NAME
新しい VM ブートディスクの名前。 BOOT_DISK_IMAGE_NAME
新しい VM のブートディスクに使用するイメージの名前。 BOOT_DISK_SIZE
ブートディスクのサイズ( 20G
など)。
この値は、常にブートディスク イメージのminimumDiskSize
以上である必要があります。BOOT_DISK_AUTO_DELETE
true
またはfalse
。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかを示します。MACHINE_TYPE
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
VM が作成されたことを確認し、VM が
Running
状態になるまで待ちます。Running
状態は、OS の準備が完全に整い、アクセス可能であることを示すものではありません。kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
VM_NAME
とPROJECT
は、VM の名前とプロジェクトに置き換えます。VM_NAME
に使用できるのは英数字とダッシュのみです。
追加の非ブートディスクを含む VM インスタンスを作成する
VM を作成するときに、非ブートディスクを作成できます。追加する各ディスクで、イメージソースを指定するかどうかを指定できます。後者は、空のディスクを作成する場合に使用します。
gdcloud
イメージからディスクを作成します。
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
空白のイメージからディスクを作成します。
gdcloud compute disks create NON_BOOT_BLANK_DISK \ --size=NON_BOOT_BLANK_DISK_SIZE \
前の手順のディスクを使用してインスタンスを作成します。
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 \ --disk=name=NON_BOOT_DISK_FROM_IMAGE \ --disk=name=NON_BOOT_BLANK_DISK
次のように置き換えます。
変数 定義 VM_NAME
新しい VM の名前。名前には英数字とダッシュのみを使用でき、53 文字以下にする必要があります。 BOOT_DISK_IMAGE_NAME
新しい VM のブートディスクに使用するイメージの名前。 BOOT_DISK_IMAGE_NAMESPACE
新しい VM ブートディスクに使用するイメージの名前空間。GDC 提供のイメージの場合は vm-system
を使用し、カスタム イメージの場合はフィールドを空白のままにします。BOOT_DISK_SIZE
ブートディスクのサイズ( 20G
など)。
この値は、常にブートディスク イメージのminimumDiskSize
以上である必要があります。NO_BOOT_DISK_AUTO_DELETE
true
またはfalse
。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかの逆を示します。MACHINE_TYPE
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
gdcloud compute machine-types list
追加のディスクの場合は、次のように置き換えます。
NON_BOOT_DISK_FROM_IMAGE
、NON_BOOT_BLANK_DISK
: 追加ディスクの名前。NON_BOOT_DISK_SIZE
、NON_BOOT_BLANK_DISK_SIZE
: 追加ディスクのサイズ(例:20G
)。NON_BOOT_DISK_IMAGE_NAME
: 非ブートディスクとして使用するイメージの名前。NON_BOOT_DISK_IMAGE_NAMESPACE
: 非ブートディスクとして使用するイメージの Namespace。GDC 提供のイメージの場合はvm-system
を使用し、カスタム イメージの場合はフィールドを空白のままにします。
API
- 非ブートディスクを含む VM を作成します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \
apply -n PROJECT -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 |
Management API サーバーの kubeconfig パス。 |
PROJECT |
VM を作成する GDC プロジェクト。 |
VM_NAME |
新しい VM の名前。名前には英数字とダッシュのみを使用でき、53 文字以下にする必要があります。 |
VM_BOOT_DISK_NAME |
新しい VM ブートディスクの名前。 |
BOOT_DISK_IMAGE_NAME |
新しい VM のブートディスクに使用するイメージの名前。 |
BOOT_DISK_IMAGE_NAMESPACE |
新しい VM ブートディスクに使用するイメージの名前空間。GDC 提供のイメージの場合は名前空間 vm-system を使用し、カスタム イメージの場合は空白にします。 |
BOOT_DISK_SIZE |
ブートディスクのサイズ(20G など)。この値は、常にブートディスク イメージの minimumDiskSize 以上である必要があります。 |
BOOT_DISK_AUTO_DELETE |
true または false 。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかを示します。 |
MACHINE_TYPE |
新しい VM の事前定義されたマシンタイプ。使用可能なマシンタイプを選択するには、次のコマンドを実行します。
kubectl --kubeconfig MANAGEMENT_API_SERVER get
virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
|
追加のディスクの場合は、次のように置き換えます。
NON_BOOT_DISK_FROM_IMAGE
、NON_BOOT_BLANK_DISK
: 追加ディスクの名前。NON_BOOT_DISK_SIZE
、NON_BOOT_BLANK_DISK_SIZE
: 追加ディスクのサイズ(例:20G
)。NON_BOOT_DISK_IMAGE_NAME
: 非ブートディスクとして使用するイメージの名前。NON_BOOT_DISK_IMAGE_NAMESPACE
: 非ブートディスクとして使用するイメージの Namespace。GDC 提供のイメージの場合は名前空間vm-system
を使用し、カスタム イメージの場合は空白にします。
ディスクを使用する前に、ディスクをフォーマットしてマウントします。
スナップショットまたはバックアップから VM を作成する
次の方法で、スナップショットから新しい VM を作成できます。
- VM ブートディスクを復元する: スナップショットで VM のブートディスクをバックアップした場合は、そのスナップショットを使用して新しい VM を作成します。スナップショットを復元するをご覧ください。
- 非ブートディスクを復元する: スナップショットで非ブートディスクをバックアップしている場合は、同じ手順で VM を作成する際にスナップショットを新しい非ブートディスクに復元することもできます。
同じブートディスクを使用して複数の VM を作成する手順は次のとおりです。
- カスタム イメージを作成する。
- スナップショットを使用せずに、そのイメージから VM を作成します。
マシンタイプを使用せずに VM を作成する
GDC エアギャップ アプライアンスは、VM インスタンスの作成時に使用できる事前定義されたマシンタイプを提供します。事前定義されたマシンタイプには、vCPU の数とメモリ容量がプリセットされています。
事前定義された VM がニーズに合わない場合は、カスタムの仮想ハードウェア設定を使用して VM インスタンスを作成します。
カスタム VM は、次のようなシナリオに適しています。
- 事前定義された VM タイプに適用できないワークロード。
処理能力やメモリがさらに必要だが、次のレベルのマシンタイプで提供されるアップグレードをすべては必要としないワークロード。
gdcloud
定義したマシンタイプを使用して VM を作成します。
gdcloud compute instances create VM_NAME \ --custom-cpu=NUM_VCPU \ --custom-memory=MEMORY --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 文字以下にする必要があります。 BOOT_DISK_IMAGE_NAME
新しい VM のブートディスクに使用するイメージの名前。 BOOT_DISK_SIZE
ブートディスクのサイズ( 20G
など)。
この値は、常にブートディスク イメージのminimumDiskSize
以上である必要があります。NO_BOOT_DISK_AUTO_DELETE
true
またはfalse
。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかの逆を示します。NUM_VCPU
vCPU の数。サポートされている vCPU の最大数は 192 です。 MEMORY
メモリサイズ( 8G
など)。最大メモリサイズは 1 テラバイト(TB)です。
API
定義したマシンタイプを使用して VM を作成します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -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: vcpus: NUM_VCPU memory: MEMORY disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true autoDelete: BOOT_DISK_AUTO_DELETE EOF
次のように置き換えます。
変数 定義 MANAGEMENT_API_SERVER
Management API サーバーの kubeconfig
パス。PROJECT
VM を作成する GDC エアギャップ アプライアンス プロジェクト。 VM_NAME
新しい VM の名前。名前には英数字とダッシュのみを使用でき、53 文字以下にする必要があります。 VM_BOOT_DISK_NAME
新しい VM ブートディスクの名前。 BOOT_DISK_IMAGE_NAME
新しい VM のブートディスクに使用するイメージの名前。 BOOT_DISK_SIZE
ブートディスクのサイズ( 20G
など)。
この値は、常にブートディスク イメージのminimumDiskSize
以上である必要があります。BOOT_DISK_AUTO_DELETE
true
またはfalse
。VM インスタンスが削除されたときにブートディスクが自動的に削除されるかどうかを示します。NUM_VCPU
vCPU の数。サポートされている vCPU の最大数は 192 です。 MEMORY
メモリサイズ( 8G
など)。最大メモリサイズは 1 TB です。