Google Distributed Cloud 上の VM ランタイムを使用する VM を作成する場合は、次の 2 つの方法でコンピューティング リソースを構成できます。
- CPU とメモリを手動で指定する: コンピューティング リソースを
VirtualMachineマニフェストで直接定義します。この方法は、1 回限りの VM や、一意のリソース割り当てを必要とするカスタム ワークロードに便利です。 - VM タイプを作成して使用する: CPU とメモリ
の割り当てを標準化する再利用可能な
VirtualMachineTypeカスタム リソースを定義します。この方法は、VM のフリートの管理、クラスタ全体でのコンピューティングの一貫性の確保、デベロッパー向けの VM プロビジョニングの簡素化に便利です。
始める前に
CPU とメモリリソースを手動で指定し、VM タイプを作成して使用するには、次のリソースにアクセスする必要があります。
- バージョン 1.9.0 以降の Distributed Cloud Connected クラスタ。
- クラスタにアクセスするようにインストールおよび構成された Kubernetes コマンドライン ツール
kubectl。詳細については、 インストールkubectlをご覧ください。 - 省略可:
kubectlのプラグインとしてインストールされたvirtctlクライアント ツール。必要に応じて、 管理ツールをインストールするをご覧ください。virtctl
VM を作成して CPU とメモリを指定する
VM を作成する際は、CPU とメモリの要件を手動で指定できます。 この機能を使用して、アプリケーションのニーズに合わせて適切なコンピューティング リソースを持つ VM を作成します。
VM を作成して CPU とメモリを指定するには、VirtualMachine マニフェストを使用します。
任意のエディタで、
my-custom-vm.yamlなどのVirtualMachineマニフェストを作成します。apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
この YAML ファイルで、以下の設定を定義します。
VM_NAME: VM の名前。NAMESPACE: VM のターゲット Namespace。L2_NETWORK_NAME: VM を接続する L2 ネットワークの名前。VCPU_NUMBER: VM に割り当てる vCPU の数。 1 ~ 96 個の vCPU を VM に割り当てることができます。MEMORY_SIZE: VM に割り当てるメモリの量。1 Mi ~ 1 Ti のメモリを VM に割り当てることができます。詳細については、Kubernetes ドキュメントの メモリリソース ユニット をご覧ください。VM_BOOT_NAME: VM ブートディスクの名前。ブートディスクはすでに存在している必要があります。詳細については、 仮想マシン イメージから仮想マシン ディスクを作成するをご覧ください。
VM は
eth0インターフェースを指定された L2 ネットワークに接続します。VM を作成するには、マニフェストを Distributed Cloud Connected クラスタに適用するには、
kubectl applyコマンドを使用します。kubectl apply -f my-custom-vm.yamlVM が作成されたことを確認するには、
kubectl getコマンドを使用します。kubectl get vm VM_NAME -n NAMESPACE想定される出力には、VM のステータスが表示されます。
kubectl describeコマンドを使用して、割り当てられた CPU と メモリなどの詳細な構成を表示することもできます。
VM タイプを作成して使用する
GDC 上の VM ランタイムを有効にすると、クラスタで VirtualMachineType カスタム リソース定義を使用できるようになります。このリソースタイプを使用して、特定の CPU とメモリの割り当てを定義する再利用可能なテンプレートを作成できます。
さまざまなワークロードに対してカスタム VM タイプを作成することで、一貫したコンピューティング リソース構成で複数の VM をプロビジョニングできます。
Distributed Cloud Connected で GDC 上の VM ランタイムが有効になっている場合は
、事前定義された VM タイプを使用できることがあります。この事前定義された 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 タイプは、ワークロードのコンピューティング ニーズに合わせて独自のものを作成できます。
任意のエディタで、
my-vm-type.yamlなどのVirtualMachineTypeマニフェストを作成します。apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: VM_TYPE_NAME spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
この VM タイプでは、次の設定を定義します。
VM_TYPE_NAME: VM タイプの名前。VCPU_NUMBER: VM に割り当てる vCPU の数。 1 ~ 96 個の vCPU を VM に割り当てることができます。MEMORY_SIZE: VM に割り当てるメモリの量。 1 Mi ~ 1 Ti のメモリを VM に割り当てることができます。詳細については、Kubernetes ドキュメントの メモリリソース ユニット をご覧ください。
VM タイプを作成するには、
kubectl applyコマンドを使用して、マニフェストを Distributed Cloud Connected クラスタに適用します。kubectl apply -f my-vm-type.yamlVM タイプが作成されたことを確認するには、
kubectl getコマンドを実行します。kubectl get virtualmachinetype VM_TYPE_NAME
VM タイプを使用して VM を作成する
VM タイプで定義された CPU とメモリの設定を VM に適用するには、VirtualMachine マニフェストの compute セクションで VM タイプの名前を指定します。
任意のエディタで、
my-custom-vm.yamlなどのVirtualMachineマニフェストを作成します。この YAML ファイルで、my-vm-typeなど、前のセクションで作成したカスタム VM タイプの名前をvirtualMachineTypeNameの値として指定します。apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: virtualMachineTypeName: VM_TYPE_NAME interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
次の設定を定義します。
VM_NAME: VM の名前。NAMESPACE: VM のターゲット Namespace。L2_NETWORK_NAME: VM を接続する L2 ネットワークの名前。VM_TYPE_NAME: 前のセクションで作成したカスタム VM タイプの名前(my-vm-typeなど)。VM_BOOT_NAME: VM ブートディスクの名前。ブートディスクはすでに存在している必要があります。詳細については、 仮想マシン イメージから仮想マシン ディスクを作成するをご覧ください。
VM は
eth0インターフェースを指定された L2 ネットワークに接続します。VM を作成するには、マニフェストを Distributed Cloud Connected クラスタに適用するには、
kubectl applyコマンドを使用します。kubectl apply -f my-custom-vm.yamlVM が VM タイプを使用していることを確認するには、
kubectl getコマンドを-o jsonpathオプションを指定して実行します。kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'想定される出力には、VM タイプの名前が表示されます。