このタスクでは、TKG クラスタ マニフェストを編集して TKG クラスタの Tanzu Kubernetes リリース バージョンを更新する方法について説明します。
kubectl edit
コマンドを使用して
Tanzu Kubernetes リリース バージョンをアップグレードすることで、TKGS クラスタのローリング アップデートを開始できます。
注:
kubectl apply
コマンドを使用して、デプロイされたクラスタの TKR バージョンを更新することはできません。
前提条件
このタスクでは、kubectl edit コマンドを使用する必要があります。このコマンドを実行すると、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで、クラスタ マニフェストが開かれます。ファイルを保存すると、変更が反映されてクラスタが更新されます。kubectl edit
コマンドを実行できるように kubectl のエディタを構成するには、「kubectl のテキスト エディタの構成」を参照してください。
手順
- スーパーバイザー で認証します。
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- ターゲット ワークロード クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context SUPERVISOR-NAMESPACE
- ターゲット TKG クラスタおよびバージョンを取得します。
v1alpha3 クラスタ:
kubectl get tanzukubernetescluster
v1beta1 クラスタ:
kubectl get cluster
- 使用できる Tanzu Kubernetes リリースをリストします。
kubectl get tanzukubernetesreleases
- 次のコマンドを実行して、クラスタのマニフェストを編集します。
v1alpha3 クラスタ:
kubectl edit tanzukubernetescluster/CLUSTER-NAME
v1beta1 クラスタ:
kubectl edit cluster/CLUSTER-NAME
- Tanzu Kubernetes リリース の文字列を更新してマニフェストを編集します。
たとえば、v1alpha3 クラスタの場合、TKR v1.25.7 を次のように変更します。
topology:
controlPlane:
replicas: 1
storageClass: vsan-default-storage-policy
tkr:
reference:
name: v1.25.7---vmware.3-fips.1-tkg.1
vmClass: guaranteed-large
nodePools:
- name: worker-tkg-pool01
replicas: 3
storageClass: vsan-default-storage-policy
tkr:
reference:
name: v1.25.7---vmware.3-fips.1-tkg.1
vmClass: guaranteed-large
volumes:
- capacity:
storage: 128Gi
mountPath: /var/lib/containerd
name: containerd
TKR v1.26.5 に変更:
topology:
controlPlane:
replicas: 1
storageClass: vsan-default-storage-policy
tkr:
reference:
name: v1.26.5---vmware.2-fips.1-tkg.1
vmClass: guaranteed-large
nodePools:
- name: worker-tkg-pool01
replicas: 3
storageClass: vsan-default-storage-policy
tkr:
reference:
name: v1.26.5---vmware.2-fips.1-tkg.1
vmClass: guaranteed-large
volumes:
- capacity:
storage: 128Gi
mountPath: /var/lib/containerd
name: containerd
注: 制御プレーン ノードとワーカー ノードの TKR バージョンが同じである必要があります。すべての TKr インスタンスを更新するか、制御プレーンのバージョンを更新して、ワーカー ノードから TKR 名を削除できます。
たとえば、v1beta1 クラスタの場合、TKR v1.25.7 を次のように変更します。
apiVersion: cluster.x-k8s.io/v1beta1
...
topology:
class: tanzukubernetescluster
version: v1.25.7---vmware.3-fips.1-tkg.1
controlPlane:
replicas: 3
workers:
...
variables:
...
TKR v1.26.5 に変更:
apiVersion: cluster.x-k8s.io/v1beta1
...
topology:
class: tanzukubernetescluster
version: v1.26.5---vmware.2-fips.1-tkg.1
controlPlane:
replicas: 3
workers:
...
variables:
...
- マニフェスト ファイルに行った変更内容を保存します。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドで、スーパーバイザーの仮想マシン サービスによって新しいワーカー ノードがプロビジョニングされます。
- kubectl から、マニフェストの編集が正常に記録されたことが報告されているかを確認します。
kubectl edit tanzukubernetescluster/tkg-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkg-cluster-1 edited
注: エラーが表示された場合、またはクラスタ マニフェストが正常に編集されたことが kubectl から報告されない場合は、KUBE_EDITOR 環境変数を使用して、デフォルトのテキスト エディタが適切に構成されていることを確認してください。
kubectl のテキスト エディタの構成を参照してください。
- クラスタが更新されていることを確認します。
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.26.5---vmware.2-fips.1-tkg.1 21h updating
- クラスタが更新されたことを確認します。
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.26.5---vmware.2-fips.1-tkg.1 22h running