升級工作負載叢集

本主題說明如何升級 Tanzu Kubernetes Grid (TKG) 工作負載叢集。對於具有獨立管理叢集的 TKG,您需要先升級會管理工作負載叢集的管理叢集。

重要

  • 如果要升級在 vSphere 8 中使用主管部署的工作負載叢集,請參閱《使用 Tanzu CLI 來建立和管理 TKG 2.2 工作負載叢集》中的升級由主管部署的叢集 (僅限 vSphere 8)
  • 獨立管理叢集和工作負載叢集會使用用戶端憑證來驗證用戶端。這些憑證的有效期為一年。若要更新憑證,請至少每年升級一次叢集。
  • TKG 不支援升級執行以前版本 tiny Tkr 的叢集。要將最小單節點叢集更新到最新的 tiny TKr 版本,需要刪除舊叢集並建立一個新叢集。有關 tiny TKrs 的資訊,請參閱 vSphere 上的單節點叢集

必要條件

基礎結構必要條件

vSphere
如果您要升級 vSphere 上執行的叢集,vSphere 中必須提供適當的基礎映像範本 OVA 作為虛擬機器範本,您才能將叢集升級到 Tanzu Kubernetes Grid 版本的非預設 Kubernete 版本。有關將 OVA 檔匯入到 vSphere 的資訊,請參閱 準備升級叢集中的 vSphere 索引標籤。
AWS
如果您要升級在 Amazon Web Services (AWS) 上執行的叢集,則含有支援的 Kubernetes 版本的 Amazon Linux 2 Amazon 機器映像 (AMI),會開放給所有支援的 AWS 區域中的所有 AWS 使用者使用。Tanzu Kubernetes Grid 會自動將適當的 AMI 版本用於您在升級期間指定的 Kubernetes 版本。
Azure
如果要升級在 Azure 上執行的叢集,請確定您已完成 準備升級叢集Azure 索引標籤的步驟。


程序

升級程序會升級工作負載叢集的所有控制平面和 worker 節點中的 Kubernetes 版本。

  1. 若要查看可用管理叢集的互動式清單,並選取管理您要升級的叢集的管理叢集,請執行 tanzu login 命令:

    tanzu login
    
  2. 若要列出工作負載叢集,請執行:

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

    具有 --include-management-cluster -A 選項的 tanzu cluster list 命令會顯示正在管理叢集及其管理的所有叢集中執行的 Kubernetes 版本。在此範例中,您可以看到管理叢集已升級 v1.25.7,但工作負載叢集執行的是舊版本的 Kubernetes。

    NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  TKR
    k8s-1-23-16-cluster  default     running   1/1           1/1      v1.23.16+vmware.1  <none>      dev   v1.23.16---vmware.1-tkg.1
    k8s-1-24-10-cluster  default     running   1/1           1/1      1.24.10+vmware.1   <none>      dev   1.24.10---vmware.1-tkg.1
    mgmt-cluster         tkg-system  running   1/1           1/1      v1.25.7+vmware.1   management  dev   v1.25.7---vmware.1-tkg.1
    
  3. 若要探索管理叢集提供了哪些 Kubernetes 版本,請執行 tanzu kubernetes-release get 命令:

    tanzu kubernetes-release get
    

    輸出會列出可用來部署叢集的所有 Kubernetes 版本,且會提供以下附註:

    • COMPATIBLE:目前的管理叢集可以使用此 Tanzu Kubernetes 版本 (tkr) 來部署工作負載叢集。
    • UPDATES AVAILABLE:此 tkr 在其 Kubernetes 版本系列中不是最新的。執行此 tkr 版本的任何工作負載叢集都可以升級到較新的版本。

    例如:

    NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
    v1.23.16---vmware.1-tkg.1  v1.23.16+vmware.1-tkg.1  True        True
    v1.24.11---vmware.1-tkg.1  v1.24.11+vmware.1-tkg.1  True        True
    v1.25.7---vmware.1-tkg.1   v1.25.7+vmware.1-tkg.1   True        True
    
  4. 若要探索您可以將執行舊版 tkr 的工作負載叢集升級到哪些較新的 tkr 版本,請執行 tanzu kubernetes-release available-upgrades get 命令,同時指定目前的 tkr 版本:

    tanzu kubernetes-release available-upgrades get 1.22.17---vmware.1-tkg.1
    

    此命令會列出對於正在執行指定版本的叢集,您可以將其升級至的所有可用 Kubernetes 版本。

    您還可以透過在 tkr 命令中指定叢集名稱來探索特定工作負載叢集可用的 tanzu cluster available-upgrades get 版本:

    tanzu cluster available-upgrades get k8s-1-23-16-cluster
    

    此命令會列出與指定叢集相容的所有 Kubernetes 版本。

    升級 tkr 版本時,不能跳過次要版本。例如,您無法將叢集直接從 v1.23.x 升級到 v1.25.x。必須先將 v1.23.x 叢集升級到 v1.24.x,再將叢集升級到 v1.25.x。

  5. 如果叢集正在 Azure 上執行,請在升級叢集之前,先設定 AZURE_CLIENT_SECRET 環境變數:

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. 執行 tanzu cluster upgrade CLUSTER-NAME 命令,並輸入 y 加以確認。若要跳過確認步驟,請指定 --yes 選項。

    若要將叢集升級到這個 Tanzu Kubernetes Grid 版本的預設 Kubernetes 版本,請執行 tanzu cluster upgrade 命令,且不包含任何選項。在此版本中,預設版本為 v1.25.7。例如:

    tanzu cluster upgrade k8s-1-24-10-cluster
    

    如果叢集未在 default 命名空間中執行,請指定 --namespace 選項:

    tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
    

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

    tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
    
    重要

    作業在 Azure 上的執行時間有時比在其他平台上還久。如果要升級 Azure 上的叢集,請定期設定 --timeout 選項,以避免失敗。

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

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

    tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
    

    由於您不能略過 tkr 的次要版本,如果您嘗試升級的叢集在預設版本後面有多個次要版本,升級命令將失敗。例如,您無法直接從 v1.23.x 升級到 v1.25.x。如果您要將叢集升級到的版本,並不是這個 Tanzu Kubernetes Grid 版本的 Kubernetes 預設版本,請指定 --tkr 選項,並在其中指定所選版本的 NAME,如上面的 tanzu kubernetes-release get 所列。例如,如要將叢集 k8s-1-23-16-cluster 從 v1.23.16 升級至 v1.24.11。

    tanzu cluster upgrade k8s-1-23-16-cluster --tkr v1.24.11---vmware.1-tkg.1
    
  7. 升級完成後,請執行 tanzu cluster list 命令,以檢查工作負載叢集是否已升級:

    tanzu cluster list --include-management-cluster -A
    
  8. 重新產生管理員 kubeconfig

    tanzu cluster kubeconfig get CLUSTER-NAME --admin
    

    其中,CLUSTER-NAME 是工作負載叢集的名稱。

    重要

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

  9. 如果使用 LDAP 或 OIDC 身分識別提供者,請確認您可以使用 kubectl 來驗證叢集。例如:

    kubectl get pods -A --kubeconfig my-cluster-credentials
    
  10. 升級正在工作負載叢集上執行的任何 CLI 管理的套件,例如 Contour、Fluent Bit 或 Prometheus。如需升級 CLI 管理的套件的詳細資訊,請參閱更新套件

    重要

    如果已在工作負載叢集上安裝 Prometheus,並將工作負載叢集升級到 Kubernetes v1.25,則必須將 Prometheus 升級到版本 2.37.0+vmware.3-tkg.1。Prometheus 軟體套件的早期版本 (例如版本 2.37.0+vmware.1-tkg.1) 與 Kubernetes 1.25 不相容。

後續步驟

現在,您可以繼續使用 Tanzu CLI 來管理叢集。如需詳細資訊,請參閱使用 Tanzu CLI 來建立和管理 TKG 2.2 工作負載叢集

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