Tanzu Kubernetes クラスタ ノードのサイズを設定するには、仮想マシン クラスを指定します。vSphere with Tanzu にはデフォルトのクラスが用意されていて、ユーザーは独自のクラスを作成できます。クラスを使用するには、そのクラスをターゲット vSphere 名前空間 に関連付けて、マニフェストでクラスを参照します。

仮想マシン クラスについて

仮想マシン クラスは、CPU やメモリ (RAM) などの仮想マシン (VM) の処理能力を確保するためのリソース予約の要求です。たとえば、「guaranteed-large」という名前の仮想マシン クラス タイプは、4 個の CPU と 16 GB の RAM を予約します。デフォルトの仮想マシン クラスのリストと、その対応 CPU と RAM 予約については、 デフォルトの仮想マシン クラスを参照してください。
注: 仮想マシンのディスク サイズは、仮想マシン クラスの定義ではなく、OVA テンプレートによって設定されます。 Tanzu Kubernetes リリース の場合、ディスク サイズは 16 GB になります。 Tanzu Kubernetes リリース の配布についてを参照してください。
仮想マシン クラスには、保証型とベスト エフォート型という 2 つの予約タイプがあります。保証型のクラスは、構成したリソースをすべて予約します。つまり、指定したクラスタで spec.policies.resources.requestsspec.hardware の設定が一致します。ベスト エフォート型のクラスでは、リソースをオーバーコミットできます。本番環境のワークロードでは、保証型の仮想マシン クラス タイプの使用をお勧めします。
注意: ベスト エフォート型の仮想マシン クラス タイプではリソースをオーバーコミットできるため、 Tanzu Kubernetes クラスタをプロビジョニングする vSphere 名前空間 に制限を設定していると、リソースを使い果たすおそれがあります。競合が発生し、制御プレーンが影響を受けると、クラスタの実行が停止する場合があります。そのため、本番クラスタには、必ず保証型の仮想マシン クラス タイプを使用してください。すべての本番ノードに保証型の仮想マシン クラス タイプを使用できない場合は、少なくとも制御プレーン ノードに使用してください。

仮想マシン クラスの使用

Tanzu Kubernetes クラスタで仮想マシン クラスを使用するには、このクラスタがプロビジョニングされている vSphere 名前空間 に仮想マシン クラスをバインドする必要があります。この操作を行うには、仮想マシン クラスをターゲット名前空間に関連付けます。Tanzu Kubernetes リリース 用の vSphere 名前空間 の構成を参照してください。

ターゲット vSphere 名前空間 で使用可能な仮想マシン クラスを一覧表示するには、 kubectl get virtualmachineclassbinding コマンドを使用します。 スーパーバイザー クラスタ にあるすべての仮想マシン クラスを表示するには、 kubectl describe virtualmachineclasses コマンドを実行します。ただし、バインドされたクラスのみを使用してクラスタをプロビジョニングできるため、後者のコマンドは単なる情報用であることに注意してください。 Tanzu Kubernetes クラスタをプロビジョニングするためのワークフローを参照してください。
注: 仮想マシン クラスを vSphere 名前空間 に関連付ける要件は、新しいクラスタにのみ適用されます。デフォルトの仮想マシン クラスを使用する既存の Tanzu Kubernetes クラスタは、名前空間を関連付けなくても、機能し続けます。

デフォルトの仮想マシン クラス

デフォルトの仮想マシン クラスには、Tanzu Kubernetes クラスタ ノードのデプロイ サイズとして使用される、デフォルトの仮想マシンのクラス タイプが一覧表示されています。

リソースのオーバーコミットを回避するには、本番ワークロードで保証されたクラス タイプを使用する必要があります。環境(開発、テスト、本番)にワークロードをデプロイしている場合にメモリ不足を回避するには、ワーカー ノードに小さなクラス サイズまたは極端に小さなクラス サイズを使用しないでください。

表 1. デフォルトの仮想マシン クラス
クラス CPU メモリ (GB) 予約済みの CPU とメモリ
guaranteed-8xlarge 32 128 はい
best-effort-8xlarge 32 128 なし
guaranteed-4xlarge 16 128 はい
best-effort-4xlarge 16 128 なし
guaranteed-2xlarge 8 64 はい
best-effort-2xlarge 8 64 なし
guaranteed-xlarge 4 32 はい
best-effort-xlarge 4 32 なし
guaranteed-large 4 16 はい
best-effort-large 4 16 なし
guaranteed-medium 2 8 はい
best-effort-medium 2 8 なし
guaranteed-small 2 4 はい
best-effort-small 2 4 なし
guaranteed-xsmall 2 2 はい
best-effort-xsmall 2 2 なし

カスタム仮想マシン クラス

vSphere with Tanzu は、Tanzu Kubernetes クラスタで使用するカスタム仮想マシン クラスをサポートします。カスタム仮想マシン クラスを定義したら、クラスタで使用する前に、ターゲット vSphere 名前空間 に関連付ける必要があります。vSphere with Tanzu での仮想マシン クラスの作成を参照してください。

仮想マシン クラスの編集

仮想マシン クラスの定義は変更できません。すべての仮想マシンは、 デフォルトの仮想マシン クラス定義を含めて、 編集することができます。仮想マシン クラスを編集した場合、既存の Tanzu Kubernetes クラスタ ノードは影響を受けません。新しい Tanzu Kubernetes クラスタは、変更されたクラス定義を使用します。
注意: Tanzu Kubernetes クラスタで使用されている仮想マシン クラスを編集し、そのクラスタをスケール アウトした場合、新しいノードは編集されたクラス定義を使用しますが、既存のノードは最初のクラス定義を使用するため、クラスの不一致が発生します。