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

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

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

TKG サービス クラスタでの仮想マシン クラスの使用

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

ターゲット vSphere 名前空間 で使用可能な仮想マシン クラスを一覧表示するには、 kubectl get virtualmachineclass コマンドを使用します。
注: このコマンドで問題が発生した場合は、「 仮想マシン クラスのエラーのトラブルシューティング」を参照してください。
仮想マシン クラスの定義は変更できません。すべての仮想マシンは、 デフォルトの仮想マシン クラス定義を含めて、編集することができます。仮想マシン クラスを編集した場合、既存の TKG クラスタ ノードは影響を受けません。新しい TKG クラスタでは、変更されたクラスが使用されます。
注意: TKG クラスタで使用されている仮想マシン クラスを編集し、そのクラスタをスケール アウトした場合、新しいノードは編集されたクラス定義を使用しますが、既存のノードは最初のクラス定義を使用するため、クラスの不一致が発生します。

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

表には、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 IaaS control plane は、TKG サービス クラスタで使用するカスタム仮想マシン クラスをサポートします。カスタム仮想マシン クラスを定義したら、クラスタで使用する前に、ターゲット vSphere 名前空間 に関連付ける必要があります。詳細については、仮想マシン サービスのドキュメントを参照してください。