このドキュメントは、GKE on Bare Metal を実行するアプリケーション オーナーとプラットフォーム管理者を対象としています。このドキュメントでは、GDC 上の VM ランタイムを使用する VM を作成する際に、VM タイプを作成して使用する方法、または CPU リソースとメモリリソースを手動で指定する方法について説明します。
準備
このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。
- GKE on Bare Metal バージョン 1.12.0(
anthosBareMetalVersion: 1.12.0
)以降のクラスタへのアクセス権。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の GDCV for Bare Metal を試すか、クラスタ作成の概要をご覧ください。 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 に適用できます。
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 タイプは、ワークロードのコンピューティング ニーズに合わせて独自のものを作成できます。
選択したエディタで
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
次のステップ
- GDCV for Bare Metal の VM を編集する。
- VM が不要になった場合に、ベアメタル版 GKE の VM を削除する。