若要升級具有獨立管理叢集的 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 cluster
,tanzu kubernetes-release
) 不可用而且不包含在 Tanzu CLI--help
輸出中。
管理叢集和工作負載叢集會使用用戶端憑證來驗證用戶端。這些憑證的有效期為一年。若要更新憑證,請至少每年升級一次叢集,或是依照更新叢集憑證 (獨立管理叢集) 或 Vmware 知識庫文章如何在 Tanzu Kubernetes Grid 叢集中輪換憑證中所述,以手動方式輪換憑證。
ClusterClass
定義,則您已執行升級自訂叢集中的步驟。從 Tanzu Kubernetes Grid v2.3 開始,您必須在設定 LDAP 身分識別提供者時設定 LDAP_BIND_DN
和 LDAP_BIND_PASSWORD
變數。在將設為使用 LDAP 身分識別提供者的管理叢集升級到 Tanzu Kubernetes Grid v2.3 之前,如果尚未設定這些變數,請進行設定。在未設定 LDAP_BIND_DN
和 LDAP_BIND_PASSWORD
的情況下升級管理叢集會導致 Pinniped App
部署失敗,並且 App
自訂資源會傳回錯誤。有關這些組態變數的詳細資訊,請參閱《組態檔變數參考》中的身分識別提供者 - LDAP。
如要更新 LDAP_BIND_DN
和 LDAP_BIND_PASSWORD
,必須使用與管理叢集版本對應的 management-cluster
CLI 外掛程式版本。升級管理叢集之前,請執行以下步驟:
將 LDAP_BIND_DN
和 LDAP_BIND_PASSWORD
新增到管理叢集的組態檔中。
確認在您的電腦上安裝了正確版本的 management-cluster
外掛程式。對於 Tanzu Kubernetes Grid v2.2.0,正確的版本為 v0.29.0
。
tanzu plugin list
如果未安裝正確版本的 management-cluster
外掛程式,請執行以下操作:
在所有可用版本的清單中,找到與管理叢集版本對應的 management-cluster
外掛程式的版本:
tanzu plugin search -n management-cluster --show-details
安裝外掛程式:
tanzu plugin install management-cluster --version PLUGIN-VERSION
其中,PLUGIN-VERSION
是在上個步驟中找到的版本。
透過執行以下命令為 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 套件的新密鑰。
確認產生的密鑰包括更新的設定,將 kubectl
內容設定為管理叢集,然後套用該密鑰:
kubectl apply -f PINNIPED-PACKAGE-SECRET.yaml
執行 tanzu context use
命令,查看可用於升級的管理叢集互動式清單。
tanzu context use
選取您要升級的管理叢集。如需詳細資訊,請參閱列出管理叢集和變更內容。
取得叢集的管理員認證。Tanzu CLI 別名 mc
是 management-cluster
的縮寫。
tanzu mc kubeconfig get --admin
將 kubectl
連線至管理叢集。
kubectl config use-context CLUSTER-NAME-admin@CLUSTER-NAME.
如果管理叢集正在 Azure 上執行,請在升級叢集之前先設定 AZURE_CLIENT_SECRET
環境變數:
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
執行 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 cluster
或tanzu 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 upgrade
和tanzu mc create
都無法使用,且不會包含在 Tanzu CLI--help
輸出中。
升級完成後,請再次執行含有 --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
重新產生管理員 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 版本。