このタスクでは、TKG クラスタ マニフェストを編集して TKG クラスタの Tanzu Kubernetes リリース バージョンを更新する方法について説明します。

kubectl edit コマンドを使用して Tanzu Kubernetes リリース バージョンをアップグレードすることで、TKGS クラスタのローリング アップデートを開始できます。
注: kubectl apply コマンドを使用して、デプロイされたクラスタの TKR バージョンを更新することはできません。

前提条件

このタスクでは、kubectl edit コマンドを使用する必要があります。このコマンドを実行すると、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで、クラスタ マニフェストが開かれます。ファイルを保存すると、変更が反映されてクラスタが更新されます。kubectl edit コマンドを実行できるように kubectl のエディタを構成するには、「kubectl のテキスト エディタの構成」を参照してください。

手順

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