此工作說明如何透過編輯 TKG 叢集資訊清單來更新 TKG 叢集的 Tanzu Kubernetes 版本 版本。

可以透過使用 kubectl edit 命令升級 Tanzu Kubernetes 版本 版本來起始 TKGS 叢集的輪流更新。
備註: 無法使用 kubectl apply 命令更新已部署叢集的 TKR 版本。

必要條件

此工作需要使用 kubectl edit 命令。此命令會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟叢集資訊清單。儲存檔案時,將透過變更來更新叢集。若要為 kubectl 設定編輯器以便可以執行 kubectl edit 命令,請參閱#GUID-104C2238-1D65-402A-85F0-742DAB49AB1A

程序

  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
    備註: 控制平面節點和 worker 節點必須具有相同的 TKR 版本。您可以更新所有 TKr 執行個體,也可以更新控制平面版本並從 worker 節點中移除 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 會將變更套用至叢集。在背景中,主管上的虛擬機器服務會佈建新的 worker 節點。
  8. 確認 kubectl 是否報告資訊清單編輯已成功記錄。
    kubectl edit tanzukubernetescluster/tkg-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkg-cluster-1 edited
    備註: 如果您收到錯誤,或 kubectl 未報告叢集資訊清單已成功編輯,請確保您使用 KUBE_EDITOR 環境變數正確設定了預設文字編輯器。請參閱 #GUID-104C2238-1D65-402A-85F0-742DAB49AB1A
  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