クラスタ ノードのホストに使用されている仮想マシンのクラスを変更することで、Tanzu Kubernetes クラスタを更新できます。
前提条件
このタスクでは、kubectl edit tanzukubernetescluster/CLUSTER-NAME
コマンドを使用してクラスタのマニフェストを更新します。kubectl edit コマンドを実行すると、KUBE_EDITOR または EDITOR の環境変数によって定義されたテキスト エディタ内にクラスタ マニフェストが開きます。ファイルを保存すると、変更が反映されてクラスタが更新されます。Kubectl のデフォルトのテキスト エディタの指定を参照してください。
手順
- スーパーバイザー クラスタ で認証します。vCenter Single Sign-On ユーザーとして スーパーバイザー クラスタ に接続するを参照してください。
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- ターゲット Tanzu Kubernetes クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context SUPERVISOR-NAMESPACE
- ターゲット Tanzu Kubernetes クラスタを記述し、仮想マシンのクラスを確認します。
kubectl describe tanzukubernetescluster CLUSTER-NAME
たとえば、このクラスタでは best-effort-medium 型の仮想マシン クラスが使用されています。
Spec:
...
Topology:
Control Plane:
Class: best-effort-medium
...
Workers:
Class: best-effort-medium
...
- 名前空間で使用可能な仮想マシン クラスを一覧表示して、記述します。
kubectl get virtualmachineclassbindings
注:
kubectl get virtualmachineclasses
コマンドは、
スーパーバイザー クラスタ にあるすべての仮想マシン クラスを一覧表示します。仮想マシン クラスと
vSphere 名前空間 を関連付ける必要がある場合は、ターゲット名前空間にバインドされているこれらの仮想マシン クラスのみを使用します。
- 次のコマンドを実行して、クラスタのマニフェストを編集します。
kubectl edit tanzukubernetescluster/CLUSTER-NAME
- 検出時にバージョンの不一致が発生しないようにするには、
version
文字列を変更し、fullVersion
を設定解除するか null にして、マニフェストを編集します。
たとえば、制御プレーンおよびワーカー ノードに
best-effort-medium
仮想マシン クラスを使用しないよう、クラスタ マニフェストを変更します。
spec:
topology:
controlPlane:
class: best-effort-medium
...
workers:
class: best-effort-medium
...
制御プレーンおよびワーカーノードに
guaranteed-large
仮想マシン クラスを使用するには、次の手順を実行します。
spec:
topology:
controlPlane:
class: guaranteed-large
...
workers:
class: guaranteed-large
...
- マニフェスト ファイルに行った変更内容を保存します。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドで、
Tanzu Kubernetes Grid サービス は新しいノード仮想マシンをプロビジョニングし、古い仮想マシンをスピンダウンします。
- kubectl から、マニフェストの編集が正常に記録されたことが報告されているかを確認します。
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
注: エラーが表示された場合、またはクラスタ マニフェストが正常に編集されたことが kubectl から報告されない場合は、KUBE_EDITOR 環境変数を使用して、デフォルトのテキスト エディタが適切に構成されていることを確認してください。
Kubectl のデフォルトのテキスト エディタの指定を参照してください。
- クラスタが更新されていることを確認します。
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 21h updating
- クラスタが更新されたことを確認します。
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 22h running