このドキュメントは、Anthos clusters on bare metal を実行するアプリケーション オーナーとプラットフォーム管理者を対象としています。このドキュメントでは、Anthos VM ランタイムを使用する VM を作成する際に、VM タイプを作成して使用する方法、または CPU リソースとメモリリソースを手動で指定する方法について説明します。
準備
このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。
- Anthos clusters on bare metal バージョン 1.12.0(
anthosBareMetalVersion: 1.12.0
)以降のクラスタへのアクセス権。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の Anthos clusters on 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 タイプを作成して使用する
Anthos VM ランタイムを有効にすると、新しい VirtualMachineType カスタム リソース定義が利用可能になります。この定義は、VM の CPU とメモリリソースを指定するために使用します。必要な各種ワークロード用に VM タイプを作成し、それらのタイプに基づいて一貫したコンピューティング リソースのセットを VM に適用できます。
Anthos clusters on bare metal で Anthos 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 を作成する
事前定義された compute
設定を VM に適用するには、VirtualMachine
マニフェストで 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 ファイルで、前のセクションで作成したカスタム VM タイプの名前(
my-vm-type
など)をvirtualMachineTypeName
の値として指定します。この VM は、
eth0
をデフォルトのpod-network
ネットワークに接続します。VM_NAME-boot-dv
という名前のブートディスクがすでに存在している必要があります。詳細については、仮想ディスクの作成と管理をご覧ください。エディタで、VM マニフェストを保存して閉じます。
kubectl
を使用して VM を作成します。kubectl apply -f my-custom-vm.yaml
次のステップ
- ベアメタル版 Anthos クラスタで VM を編集する
- VM が不要になった場合に、ベアメタル版 Anthos クラスタの VM を削除する。