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 のデフォルトのテキスト エディタの指定を参照してください。

手順

  1. スーパーバイザー クラスタ で認証します。vCenter Single Sign-On ユーザーとして スーパーバイザー クラスタ に接続するを参照してください。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. ターゲット Tanzu Kubernetes クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. ターゲット 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
  4. 使用できる Tanzu Kubernetes リリースをリストします。
    kubectl get tanzukubernetesreleases
  5. 次のコマンドを実行して、クラスタのマニフェストを編集します。
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. Tanzu Kubernetes リリース をアップデートしてマニフェストを編集します。実行方法は、使用している TKGS API のバージョンによって異なります。
    TKGS v1alpha2 API を使用している場合は、TKR NAME 文字列を更新します。 クラスタ仕様を TKGS v1alpha2 API に変換した後の Tanzu Kubernetes リリースの更新を参照してください。
    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 にする必要があります。
  7. マニフェスト ファイルに行った変更内容を保存します。
    ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドで、スーパーバイザー クラスタの仮想マシン サービスによって新しいワーカー ノードがプロビジョニングされます。
  8. kubectl から、マニフェストの編集が正常に記録されたことが報告されているかを確認します。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    注: エラーが表示された場合、またはクラスタ マニフェストが正常に編集されたことが kubectl から報告されない場合は、KUBE_EDITOR 環境変数を使用して、デフォルトのテキスト エディタが適切に構成されていることを確認してください。 Kubectl のデフォルトのテキスト エディタの指定を参照してください。
  9. クラスタが更新されていることを確認します。
    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
  10. クラスタが更新されたことを確認します。
    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