このドキュメントは、Google Distributed Cloud を実行するアプリケーション オーナーとプラットフォーム管理者を対象としています。このドキュメントでは、GDC 上の VM ランタイムを使用する VM を作成する際に、VM タイプを作成して使用する方法、または CPU リソースとメモリリソースを手動で指定する方法について説明します。
始める前に
このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。
- Google Distributed Cloud バージョン 1.12.0(anthosBareMetalVersion: 1.12.0)以降のクラスタへのアクセス権。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine 上の Google Distributed Cloud を試すか、クラスタ作成の概要をご覧ください。
- kubectlのプラグインとしてインストールされた- virtctlクライアント ツール。必要に応じて、virtctl クライアント ツールをインストールします。
VM を作成する
VM を作成する際は、CPU とメモリの要件を手動で指定できます。これができることにより、アプリケーションのニーズに合わせて適切なコンピューティング リソースを持つ VM を作成できます。
VM を作成し、CPU とメモリの要件を手動で指定するには、次の手順を実行します。
CLI
- kubectlを使用して VM を作成します。- kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --cpu CPU_NUMBER \ --memory MEMORY_SIZE- 次の値を置き換えます。 - VM_NAME: VM の名前。名前の制約の詳細については、オブジェクト名と ID をご覧ください。
- CPU_NUMBER: VM に割り当てる仮想 CPU(vCPU)の数。- 1~96 個の vCPU を VM に割り当てることができます。
 
- MEMORY_SIZE: VM に割り当てるメモリ量。- 1M~1T のメモリを VM に割り当てることができます。詳細については、メモリリソース ユニットをご覧ください。
 
 
マニフェスト
- 選択したエディタで - VirtualMachineマニフェスト(my-custom-vm.yaml など)を作成します。- nano my-custom-vm.yaml
- 次の YAML マニフェストをコピーして貼り付けます。 - apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true- この YAML ファイルで、以下の設定を定義します。 - VM_NAME: VM の名前。名前の制約の詳細については、オブジェクト名と ID をご覧ください。
- VCPU_NUMBER: VM に割り当てる vCPU の数(省略可)。- 1~96 個の vCPU を VM に割り当てることができます。
 
- MEMORY_SIZE: VM に割り当てるメモリ量。- 1M~1T のメモリを VM に割り当てることができます。詳細については、メモリリソース ユニットをご覧ください。
 
 - VM が - eth0をデフォルトの- pod-networkネットワークに接続します。- VM_NAME-boot-dvという名前のブートディスクがすでに存在している必要があります。詳細については、仮想ディスクを作成して管理するをご覧ください。
- エディタで、VM マニフェストを保存して閉じます。 
- kubectlを使用して VM を作成します。- kubectl apply -f my-custom-vm.yaml
VM タイプを作成して使用する
GDC 上の VM ランタイムを有効にすると、新しい VirtualMachineType カスタム リソース定義が利用可能になります。この定義は、VM の CPU リソースとメモリリソースの指定に使用されます。必要なワークロードに合わせて VM タイプを作成し、それらのタイプに基づいて一貫性のあるコンピューティング リソースのセットを VM に適用できます。
Google Distributed Cloud で GDC 上の VM ランタイムが有効になっている場合、vm-controller-manager は事前定義された VM タイプをインストールします。デフォルトの example-machinetype VM タイプの定義は次のとおりです。
  apiVersion: vm.cluster.gke.io/v1
  kind: VirtualMachineType
  metadata:
    name: "example-machinetype"
    labels:
      vm.cluster.gke.io/predefined-machinetype: "true"
  spec:
    cpu:
      vcpus: 2
    memory:
      capacity: 4G
この事前定義された VM タイプは更新できません。vm-controller-manager が起動または再起動したとき、この VM タイプがクラスタに存在しない場合(この VM タイプを削除した場合など)は、再インストールされます。
VM タイプを作成する
VM タイプは、ワークロードのコンピューティング ニーズに合わせて独自のものを作成できます。
- 選択したエディタで - VirtualMachineTypeマニフェスト(my-vm-type.yaml など)を作成します。- nano my-vm-type.yaml
- 次の YAML マニフェストをコピーして貼り付けます。 - apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: my-vm-type spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE- この VM タイプでは、次の設定を定義します。 - VM_NAME: VM の名前。名前の制約の詳細については、オブジェクト名と ID をご覧ください。
- VCPU_NUMBER: VM に割り当てる vCPU の数(省略可)。- 1~96 個の vCPU を VM に割り当てることができます。
 
- MEMORY_SIZE: VM に割り当てるメモリ量。- 1M~1T のメモリを VM に割り当てることができます。詳細については、メモリリソース ユニットをご覧ください。
 
 
- VM タイプのマニフェストをエディタに保存して閉じます。 
- kubectlを使用して VM タイプを作成します。- kubectl apply -f my-vm-type.yaml
VM タイプを使用して VM を作成する
VirtualMachine マニフェストで VM タイプを指定して、事前定義された compute 設定を VM に適用します。
- 選択したエディタで - VirtualMachineマニフェスト(my-custom-vm.yaml など)を作成します。- nano my-custom-vm.yaml
- 次の YAML マニフェストをコピーして貼り付けます。 - apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineTypeName: my-vm-type interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true- この YAML ファイルで、 - my-vm-typeなど、前のセクションで作成したカスタム VM タイプの名前を- virtualMachineTypeNameの値として指定します。- VM が - eth0をデフォルトの- pod-networkネットワークに接続します。- VM_NAME-boot-dvという名前のブートディスクがすでに存在している必要があります。詳細については、仮想ディスクを作成して管理するをご覧ください。
- エディタで、VM マニフェストを保存して閉じます。 
- kubectlを使用して VM を作成します。- kubectl apply -f my-custom-vm.yaml
次のステップ
- Google Distributed Cloud で VM を編集する。
- VM が不要になった場合は、Google Distributed Cloud で VM を削除します。