This site will be decommissioned on December 31st 2024. After that date content will be available at techdocs.broadcom.com.

升級獨立管理叢集

若要升級具有獨立管理叢集的 Tanzu Kubernetes Grid,必須先升級獨立管理叢集。在升級管理工作負載叢集的管理叢集之前,您無法升級工作負載叢集。

如果您執行的 TKG 具有 vSphere with Tanzu 主管,則不需遵循此程序。相反地,您將隨 vSphere 一起升級主管,並藉由升級其 TKr 來更新主管的 Kubernetes 版本。

重要

Tanzu Kubernetes Grid v2.4.x 是支援升級 AWS 和 Azure 上現有獨立 TKG 管理叢集的最後一個 TKG 版本。Tanzu Kubernetes Grid v2.5 版本中將移除在 AWS 和 Azure 上升級獨立 TKG 管理叢集的功能。

從現在開始,VMware 建議您使用 Tanzu Mission Control 建立原生 AWS EKS 和 Azure AKS 叢集。但是,在 AWS 和 Azure 上升級現有的獨立 TKG 管理叢集仍完全獲 TKG v2.4.x 及以下版本支援。

有關詳細資訊,請參見《VMware Tanzu Kubernetes Grid v2.4 版本資訊》中的〈棄用 AWS 和 Azure 上的 TKG 管理和工作負載叢集〉

如果升級管理叢集,會自動升級其執行的自動管理的套件

附註

安裝 Tanzu CLI 之後但在升級獨立管理叢集之前,所有內容特定的 CLI 命令群組 (tanzu clustertanzu kubernetes-release) 不可用而且不包含在 Tanzu CLI --help 輸出中。

管理叢集和工作負載叢集會使用用戶端憑證來驗證用戶端。這些憑證的有效期為一年。若要更新憑證,請至少每年升級一次叢集,或是依照更新叢集憑證 (獨立管理叢集) 或 Vmware 知識庫文章如何在 Tanzu Kubernetes Grid 叢集中輪換憑證中所述,以手動方式輪換憑證。

必要條件

  • 您已檢閱升級的已知問題。請參閱已知問題
  • 在您執行升級管理叢集的步驟之前,已先執行升級 Tanzu Kubernetes Grid 中的步驟。
  • 網際網路受限:如果您在網際網路受限的環境中部署了舊版 Tanzu Kubernetes Grid,則您已執行準備網際網路受限的環境中的步驟,以使用新的元件映像版本來重建並執行所需的指令碼。
  • 自訂叢集:如果您的工作負載叢集使用自訂 ClusterClass 定義,則您已執行升級自訂叢集中的步驟。
  • LDAP:如果管理叢集的先前版本與 LDAP 身分識別提供者整合,則您已執行下面 (僅限 LDAP) 更新 LDAP 設定中的步驟。

(僅限 LDAP) 更新 LDAP 設定

從 Tanzu Kubernetes Grid v2.3 開始,您必須在設定 LDAP 身分識別提供者時設定 LDAP_BIND_DNLDAP_BIND_PASSWORD 變數。在將設為使用 LDAP 身分識別提供者的管理叢集升級到 Tanzu Kubernetes Grid v2.3 之前,如果尚未設定這些變數,請進行設定。在未設定 LDAP_BIND_DNLDAP_BIND_PASSWORD 的情況下升級管理叢集會導致 Pinniped App 部署失敗,並且 App 自訂資源會傳回錯誤。有關這些組態變數的詳細資訊,請參閱《組態檔變數參考》中的身分識別提供者 - LDAP

如要更新 LDAP_BIND_DNLDAP_BIND_PASSWORD,必須使用與管理叢集版本對應的 management-cluster CLI 外掛程式版本。升級管理叢集之前,請執行以下步驟:

  1. LDAP_BIND_DNLDAP_BIND_PASSWORD 新增到管理叢集的組態檔中。

  2. 確認在您的電腦上安裝了正確版本的 management-cluster 外掛程式。對於 Tanzu Kubernetes Grid v2.2.0,正確的版本為 v0.29.0

    tanzu plugin list
    

    如果未安裝正確版本的 management-cluster 外掛程式,請執行以下操作:

    1. 在所有可用版本的清單中,找到與管理叢集版本對應的 management-cluster 外掛程式的版本:

      tanzu plugin search -n management-cluster --show-details
      
    2. 安裝外掛程式:

      tanzu plugin install management-cluster --version PLUGIN-VERSION
      

      其中,PLUGIN-VERSION 是在上個步驟中找到的版本。

  3. 透過執行以下命令為 Pinniped 套件產生新密鑰:

    FILTER_BY_ADDON_TYPE=authentication/pinniped tanzu management-cluster create --dry-run -f YOUR-MANAGEMENT-CLUSTER-CONFIG-FILE.yaml > PINNIPED-PACKAGE-SECRET.yaml
    

    其中,YOUR-MANAGEMENT-CLUSTER-CONFIG-FILE.yaml 是在上個步驟中更新的組態檔,PINNIPED-PACKAGE-SECRET.yaml 是 Pinniped 套件的新密鑰。

  4. 確認產生的密鑰包括更新的設定,將 kubectl 內容設定為管理叢集,然後套用該密鑰:

    kubectl apply -f PINNIPED-PACKAGE-SECRET.yaml
    

程序

  1. 執行 tanzu context use 命令,查看可用於升級的管理叢集互動式清單。

    tanzu context use
    
  2. 選取您要升級的管理叢集。如需詳細資訊,請參閱列出管理叢集和變更內容

  3. 取得叢集的管理員認證。Tanzu CLI 別名 mcmanagement-cluster 的縮寫。

    tanzu mc kubeconfig get --admin
    
  4. kubectl 連線至管理叢集。

    kubectl config use-context CLUSTER-NAME-admin@CLUSTER-NAME.
    
  5. 如果管理叢集正在 Azure 上執行,請在升級叢集之前先設定 AZURE_CLIENT_SECRET 環境變數:

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. 執行 tanzu mc upgrade 命令,並輸入 y 加以確認。

    附註

    執行此命令後,非管理員使用者無法登入相關聯的工作負載叢集,必須等 Pinniped 網繭完成重新啟動才行。

    tanzu mc upgrade
    

    如果 IaaS 帳戶中的多個基礎虛擬機器映像具有要升級到的相同的 Kubernetes 版本,則可以包括 --os-name 和其他選項以指定目標作業系統,如選擇要升級至的作業系統

    tanzu mc upgrade --os-name ubuntu
    

    在 vSphere 上,可以使用 --vsphere-vm-template-name 選項為叢集節點指定目標 OVA 範本,如選擇要升級至的 OVA 範本所述:

    tanzu mc upgrade --vsphere-vm-template-name "/dc0/vm/tanzu/ubuntu-2004-kube-v1.29.9-vmware.1"
    

    若要在升級叢集時略過確認步驟,請指定 --yes 選項。

    tanzu mc upgrade --yes
    

    升級程序會先針對正在管理叢集中執行的 vSphere、Amazon Web Services (AWS) 或 Azure,升級其叢集 API 提供者。接著,會升級管理叢集的所有控制平面和工作節點中的 Kubernetes 版本。

    重要

    升級管理叢集時,請勿對管理叢集或其管理的工作負載叢集執行 tanzu clustertanzu mc 命令,例如從另一個啟動機器或 shell 視窗中執行命令。

    如果升級在完成之前就已逾時,請再次執行 tanzu mc upgrade,並指定 --timeout 選項,且其值大於預設值 30 分鐘。

    tanzu mc upgrade --timeout 45m0s
    
    附註

    在您已安裝 v2.3 CLI 後,除非已升級管理叢集,否則該內容特定的所有 CLI 命令群組 (tanzu cluster, tanzu kubernetes-release) 以及所有 management-cluster 外掛程式命令 (但不包括 tanzu mc upgradetanzu mc create 都無法使用,且不會包含在 Tanzu CLI --help 輸出中。

  7. 升級完成後,請再次執行含有 --include-management-cluster -A 選項的 tanzu cluster list 命令,以檢查管理叢集是否已升級。

    tanzu cluster list --include-management-cluster -A
    

    您會看到管理叢集現在正在執行新版本的 Kubernetes,但工作負載叢集仍在執行舊版的 Kubernetes。

     NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLA   TKR
     k8s-1-24-14-cluster  default     running   1/1           1/1      v1.24.14+vmware.1  <none>      dev   v1.24.14---vmware.1-tkg.1
     k8s-1-25-10-cluster  default     running   1/1           1/1      v1.25.10+vmware.1  <none>      dev   v1.25.10---vmware.1-tkg.1
     mgmt-cluster         tkg-system  running   1/1           1/1      v1.26.8+vmware.1   management  dev   v1.26.8---vmware.2-tkg.1
    
  8. 重新產生管理員 kubeconfig

    tanzu management-cluster kubeconfig get --admin
    

    以下是此命令的輸出範例:

    Credentials of cluster 'mgmt' have been saved
    You can now access the cluster by running 'kubectl config use-context mgmt-admin@mgmt'
    
    重要

    如果在升級後不續訂 kubeconfig,則在叢集過期後將無法存取該叢集。

後續步驟

您現在可以:

  • 升級工作負載叢集 (由這個管理叢集所管理)。

  • 建立新的工作負載叢集。依預設,隨此管理叢集一起部署的任何新叢集都會執行新的預設 Kubernetes 版本。但是,必要時,您可以使用設有 --tkr 選項的 tanzu cluster create 命令,來部署執行不同 Kubernetes 版本的新叢集。如需詳細資訊,請參閱多個 Kubernetes 版本

check-circle-line exclamation-circle-line close-line
Scroll to top icon