本主題說明如何升級 Tanzu Kubernetes Grid (TKG) 工作負載叢集。對於具有獨立管理叢集的 TKG,您需要先升級會管理工作負載叢集的管理叢集。
重要獨立管理叢集和工作負載叢集會使用用戶端憑證來驗證用戶端。這些憑證的有效期為一年。若要更新憑證,請至少每年升級一次叢集。
升級程序會升級工作負載叢集的所有控制平面和 worker 節點中的 Kubernetes 版本。
若要查看可用管理叢集的互動式清單,並選取管理您要升級的叢集的管理叢集,請執行 tanzu login
命令:
tanzu login
若要列出工作負載叢集,請執行:
tanzu cluster list --include-management-cluster -A
具有 --include-management-cluster -A
選項的 tanzu cluster list
命令會顯示正在管理叢集及其管理的所有叢集中執行的 Kubernetes 版本。在此範例中,您可以看到管理叢集已升級到 v1.24.10,但工作負載叢集執行的是舊版本的 Kubernetes。
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN 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
若要探索管理叢集提供了哪些 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.22.17---vmware.1-tkg.1 v1.22.17+vmware.1-tkg.1 True True
v1.23.16---vmware.1-tkg.1 v1.23.16+vmware.1-tkg.1 True True
v1.24.10---vmware.1-tkg.1 v1.24.10+vmware.1-tkg.1 True True
若要探索您可以將執行舊版 tkr
的工作負載叢集升級到哪些較新的 tkr
版本,請執行 tanzu kubernetes-release available-upgrades get
命令,同時指定目前的 tkr
版本:
tanzu kubernetes-release available-upgrades get v1.23.10---vmware.1-tkg.1
此命令會列出對於正在執行指定版本的叢集,您可以將其升級至的所有可用 Kubernetes 版本。
您還可以透過在 tkr
命令中指定叢集名稱來探索特定工作負載叢集可用的 tanzu cluster available-upgrades get
版本:
tanzu cluster available-upgrades get k8s-1-23-10-cluster
此命令會列出與指定叢集相容的所有 Kubernetes 版本。
升級 tkr
版本時,不能跳過次要版本。例如,您無法將叢集直接從 v1.22.x 升級到 v1.24.x。必須先將 v1.22.x 叢集升級到 v1.23.x,再將叢集升級到 v1.24.x。
如果叢集正在 Azure 上執行,請在升級叢集之前,先設定 AZURE_CLIENT_SECRET
環境變數:
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
執行 tanzu cluster upgrade CLUSTER-NAME
命令,並輸入 y
加以確認。若要跳過確認步驟,請指定 --yes
選項。
若要將叢集升級到這個 Tanzu Kubernetes Grid 版本的預設 Kubernetes 版本,請執行 tanzu cluster upgrade
命令,且不包含任何選項。在此版本中,預設版本為 v1.24.10
。例如:
tanzu cluster upgrade k8s-1-23-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.23.16 的 Photon 和 Ubuntu OVA 範本,請指定 --os-name ubuntu
,以升級要在 Ubuntu 上執行的工作負載叢集。
tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
由於您不能略過 tkr
的次要版本,如果您嘗試升級的叢集在預設版本後面有多個次要版本,升級命令將失敗。例如,您無法直接從 v1.22.x 升級到 v1.24.x。如果您要將叢集升級到的版本,並不是這個 Tanzu Kubernetes Grid 版本的 Kubernetes 預設版本,請指定 --tkr
選項,並在其中指定所選版本的 NAME
,如上面的 tanzu kubernetes-release get
所列。例如,將叢集 k8s-1-22-13-cluster
從 v1.22.13 升級到 v1.23.16。
tanzu cluster upgrade k8s-1-22-13-cluster --tkr v1.23.16---vmware.1-tkg.1
升級完成後,請執行 tanzu cluster list
命令,以檢查工作負載叢集是否已升級:
tanzu cluster list --include-management-cluster -A
重新產生管理員 kubeconfig
:
tanzu cluster kubeconfig get CLUSTER-NAME --admin
其中,CLUSTER-NAME
是工作負載叢集的名稱。
重要如果在升級後不續訂
kubeconfig
,則在叢集過期後將無法存取該叢集。
如果使用 LDAP 或 OIDC 身分識別提供者,請確認您可以使用 kubectl
來驗證叢集。例如:
kubectl get pods -A --kubeconfig my-cluster-credentials
升級正在工作負載叢集上執行的任何 CLI 管理的套件,例如 Contour、Fluent Bit 或 Prometheus。如需升級 CLI 管理的套件的詳細資訊,請參閱更新套件。
現在,您可以繼續使用 Tanzu CLI 來管理叢集。如需詳細資訊,請參閱使用 Tanzu CLI 來建立和管理 TKG 2.1 工作負載叢集。