Tanzu Kubernetes リリース バージョンをアップグレードして、Tanzu Kubernetes クラスタをアップデートします。
Tanzu Kubernetes リリース バージョンをアップグレードすると、
Tanzu Kubernetes クラスタのローリング アップデートを開始できます。実行方法は、使用中の
Tanzu Kubernetes Grid サービス API のバージョンによって異なります。
TKGS API バージョン |
バージョンのアップデート方法 |
v1alpha2 API |
クラスタ マニフェストの spec.topology.controlPlane.tkr.refernece.name プロパティと spec.topology.nodePools[*].tkr.reference.name プロパティの TKR NAME 文字列をアップデートします。クラスタ仕様を TKGS v1alpha2 API に変換した後の Tanzu Kubernetes リリースの更新を参照してください。 |
v1alpha1 API |
クラスタ マニフェストの spec.distribution.version プロパティと spec.distribution.fullVersion プロパティの DISTRIBUTION バージョンをアップデートします。下記を参照してください。 |
前提条件
Tanzu Kubernetes クラスタをアップデートするための前提条件が完了していることを確認します。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 get tanzukubernetescluster
たとえば、TKGS v1alpha2 API を使用した結果は次のようになります。
kubectl get tanzukubernetescluster
NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE
tkgs-cluster-1 test-cluster 3 3 v1.21.2---vmware.1-tkg.1.ee25d55 38h True True [1.21.2+vmware.1-tkg.1.ee25d55]
たとえば、TKGS v1alpha1 API を使用した結果は次のようになります。
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.19.16+vmware.1-tkg.1.df910e2 19h running
- 使用できる Tanzu Kubernetes リリースをリストします。
kubectl get tanzukubernetesreleases
- 次のコマンドを実行して、クラスタのマニフェストを編集します。
kubectl edit tanzukubernetescluster/CLUSTER-NAME
- Tanzu Kubernetes リリース をアップデートしてマニフェストを編集します。実行方法は、使用している TKGS API のバージョンによって異なります。
TKGS v1alpha1 API を使用している場合は、たとえば次のようにマニフェストを更新します。更新前:
spec:
distribution:
fullVersion: v1.19.16+vmware.1-tkg.1.df910e2
version: v1.19.16
更新後:
spec:
distribution:
fullVersion: null
version: v1.20.12
注: TKGS v1alpha1 API を使用している場合は、完全修飾バージョンを指定するか、バージョンのショートカットを指定できます。たとえば、
version: v1.20.12
と指定すると、そのパッチ バージョンに一致する最新のイメージに解決され、
version: v1.20
と指定すると、一致する最新のパッチ バージョンに解決されます。解決されたバージョンは、クラスタ マニフェストに
fullVersion
として表示されます。ショートカットでバージョンをアップグレードするには、検出中にバージョンの不一致が生じないよう、
fullVersion
を設定解除するか、null にする必要があります。
- マニフェスト ファイルに行った変更内容を保存します。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドで、スーパーバイザー クラスタの仮想マシン サービスによって新しいワーカー ノードがプロビジョニングされます。
- 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.20.12+vmware.1-tkg.1.b9a42f3 21h updating
- クラスタが更新されたことを確認します。
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.20.12+vmware.1-tkg.1.b9a42f3 22h running