升級獨立管理叢集

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

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

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

附註

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

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

必要條件

  • 您已檢閱升級的已知問題。請參閱已知問題
  • 在您執行升級管理叢集的步驟之前,已先執行升級 Tanzu Kubernetes Grid 中的步驟。
  • 如果您在網際網路受限的環境中部署了舊版 Tanzu Kubernetes Grid,則您已執行準備網際網路受限的環境中的步驟,以使用新的元件映像版本來重建並執行所需的指令碼。
  • 如果您現有的管理叢集為 1.6.0 (含) 以下的版本,並且已在沒有主管叢集的 vSphere 7 上執行,且您希望將 vSphere 升級到 vSphere 8,請將管理叢集及其工作負載叢集升級到 Tanzu Kubernetes Grid v2.1.x 或 v1.6.1,並且最好是在您從 vSphere 7 升級到 vSphere 8 之前完成。如果您是在 vSphere 7 上執行獨立管理叢集,且在您升級到 Tanzu Kubernetes Grid v2.1.x 或 v1.6.1 之前,已先將 vSphere 執行個體升級到 vSphere 8,則您必須儘快升級管理叢集和工作負載叢集。在 vSphere 8 上,不支援 v1.6.0 (含) 以下的 Tanzu Kubernetes Grid 版本。

程序

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

    tanzu login
    
  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. 如果管理叢集最初是在 TKG v1.3 或更早版本中建立的,或者如果您不確定,請執行以下動作。這些步驟會新增一個密碼,當在 TKG v2.1 中將管理叢集升級到其以套件為基礎的組態時需要用到此密碼,但此密碼不會包含在 TKG v1.4 之前所建立的管理叢集中。

    1. 停用 package-based-cc 功能旗標,以啟用舊版管理叢集建立試執行:

      tanzu config set features.management-cluster.package-based-cc false
      
    2. 使用原始組態檔來試執行管理叢集建立作業,以針對管理叢集取得較新的舊版樣式資訊清單。例如,在 vSphere 上:

      tanzu mc create -f mgmt-config.yaml --dry-run > legacy-mgmt.yaml
      Do you want to configure vSphere with Tanzu? [y/N]: N
      Would you like to deploy a non-integrated Tanzu Kubernetes Grid management cluster on vSphere 7.0? [y/N]: y
      
      
    3. 擷取所需的 -config-values 密碼:

      cat legacy-mgmt.yaml | yq 'select(.metadata.name == "MANAGEMENT-CLUSTER-NAME-config-values")' > mgmt-config-secret.yaml
      
    4. 在管理叢集內容中,將密碼套用至管理叢集:

      kubectl apply -f mgmt-config-secret.yaml
      
    5. 重新啟用 package-based-cc 功能旗標,以禁止建立舊版管理叢集。

      tanzu config set features.management-cluster.package-based-cc true
      
  7. 執行 tanzu mc upgrade 命令,並輸入 y 加以確認。

    附註

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

    tanzu mc upgrade
    

    如果您 IaaS 帳戶中有多個基礎虛擬機器映像的 Kubernetes 版本與您要升級成的版本相同,請使用 --os-name 選項來指定您要的作業系統。如需詳細資訊,請參閱在叢集升級期間選取作業系統

    例如,在 vSphere 上,如果您同時上傳了使用 Kubernetes v1.24.10 的 Photon 和 Ubuntu OVA 範本,請指定 --os-name ubuntu,以升級要在 Ubuntu 虛擬機器上執行的管理叢集。

    tanzu mc upgrade --os-name ubuntu
    

    若要在升級叢集時略過確認步驟,請指定 --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.1 CLI 之後,但在升級管理叢集之前,該內容所有特定的 CLI 命令群組 (tanzu clustertanzu kubernetes-release) 以及除 tanzu mc upgradetanzu mc create 以外的所有 management-cluster 外掛程式命令,均無法使用且不會包含在 Tanzu CLI --help 輸出中。

  8. 升級完成後,請再次執行含有 --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-22-13-cluster  default     running   1/1           1/1      v1.22.13+vmware.1  <none>      dev   v1.22.13---vmware.1-tkg.1
     k8s-1-23-10-cluster  default     running   1/1           1/1      v1.23.10+vmware.1  <none>      dev   v1.23.10---vmware.1-tkg.1
     mgmt-cluster         tkg-system  running   1/1           1/1      v1.24.10+vmware.1  management  dev   v1.24.10---vmware.1-tkg.1
    
  9. 重新產生管理員 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