Google Distributed Cloud 上の VM ランタイムを使用して、特定の CPU とメモリリソースを持つ VM を作成する

このドキュメントは、ベアメタル版 GKE を実行するアプリケーション オーナーとプラットフォーム管理者を対象としています。このドキュメントでは、Google Distributed Cloud 上の VM ランタイムを使用する VM を作成する際に、VM タイプを作成して使用する方法、または CPU リソースとメモリリソースを手動で指定する方法について説明します。

始める前に

このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。

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 に割り当てるメモリ量。

マニフェスト

  1. 選択したエディタで VirtualMachine マニフェスト(my-custom-vm.yaml など)を作成します。

    nano my-custom-vm.yaml
    
  2. 次の 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 に割り当てるメモリ量。

    VM が eth0 をデフォルトの pod-network ネットワークに接続します。

    VM_NAME-boot-dv という名前のブートディスクがすでに存在している必要があります。詳細については、仮想ディスクを作成して管理するをご覧ください。

  3. エディタで、VM マニフェストを保存して閉じます。

  4. kubectl を使用して VM を作成します。

    kubectl apply -f my-custom-vm.yaml
    

VM タイプを作成して使用する

Google Distributed Cloud 上の VM ランタイムを有効にすると、新しい VirtualMachineType カスタム リソース定義が利用可能になります。この定義は、VM の CPU とメモリリソースを指定するために使用されます。必要なワークロードに合わせて VM タイプを作成し、それらのタイプに基づいて一貫性のあるコンピューティング リソースのセットを VM に適用できます。

Google Distributed Cloud 上の VM ランタイムが ベアメタル版 GKE で有効になっている場合、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 タイプは、ワークロードのコンピューティング ニーズに合わせて独自のものを作成できます。

  1. 選択したエディタで VirtualMachineType マニフェスト(my-vm-type.yaml など)を作成します。

    nano my-vm-type.yaml
    
  2. 次の 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 に割り当てるメモリ量。
  3. VM タイプのマニフェストをエディタに保存して閉じます。

  4. kubectl を使用して VM タイプを作成します。

    kubectl apply -f my-vm-type.yaml
    

VM タイプを使用して VM を作成する

VirtualMachine マニフェストで VM タイプを指定して、事前定義された compute 設定を VM に適用します。

  1. 選択したエディタで VirtualMachine マニフェスト(my-custom-vm.yaml など)を作成します。

    nano my-custom-vm.yaml
    
  2. 次の 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 という名前のブートディスクがすでに存在している必要があります。詳細については、仮想ディスクを作成して管理するをご覧ください。

  3. エディタで、VM マニフェストを保存して閉じます。

  4. kubectl を使用して VM を作成します。

    kubectl apply -f my-custom-vm.yaml
    

次のステップ