本主題說明如何升級 Tanzu Kubernetes Grid (TKG) 工作負載叢集。對於具有獨立管理叢集的 TKG,您需要先升級會管理工作負載叢集的管理叢集。
重要
- 如果要升級在 vSphere 8 中使用主管部署的工作負載叢集,請參閱《使用 Tanzu CLI 來建立和管理 TKG 2.2 工作負載叢集》中的升級由主管部署的叢集 (僅限 vSphere 8)。
- 獨立管理叢集和工作負載叢集會使用用戶端憑證來驗證用戶端。這些憑證的有效期為一年。若要更新憑證,請至少每年升級一次叢集。
- TKG 不支援升級執行以前版本
tiny
Tkr 的叢集。要將最小單節點叢集更新到最新的tiny
TKr 版本,需要刪除舊叢集並建立一個新叢集。有關tiny
TKrs 的資訊,請參閱 vSphere 上的單節點叢集。
升級程序會升級工作負載叢集的所有控制平面和 worker 節點中的 Kubernetes 版本。
若要查看可用管理叢集的互動式清單,並選取管理您要升級的叢集的管理叢集,請執行 tanzu login
命令:
tanzu login
若要列出工作負載叢集,請執行:
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
若要探索管理叢集提供了哪些 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
若要探索您可以將執行舊版 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。
如果叢集正在 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.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
升級完成後,請執行 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 管理的套件的詳細資訊,請參閱更新套件。
重要如果已在工作負載叢集上安裝 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 工作負載叢集。