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

このドキュメントは、GKE on Bare Metal を実行するアプリケーション オーナーとプラットフォーム管理者を対象としています。このドキュメントでは、GDC 上の 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 タイプを作成して使用する

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

GDC 上の VM ランタイムが GKE on Bare Metal で有効になっている場合、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
    

次のステップ