對於 主管 和 Tanzu Kubernetes Grid 叢集以及支援這些叢集的基礎結構,vSphere with Tanzu 支援輪流更新。
如何更新 主管 和 Tanzu Kubernetes Grid 叢集
vSphere with Tanzu 針對 主管 和 Tanzu Kubernetes Grid 叢集使用輪流更新模型。輪流更新模型可確保在更新程序期間,叢集工作負載的停機時間最少。輪流更新包括對 Kubernetes 軟體版本以及支援 Kubernetes 叢集的基礎結構和服務進行升級,例如虛擬機器組態和資源、vSphere 命名空間 以及自訂資源。
主管 更新和 Tanzu Kubernetes Grid 叢集更新之間的相依性
可以單獨更新 主管 和 Tanzu Kubernetes Grid 叢集。但請注意,兩者之間存在相依性。
更新 主管 可能會對在此部署的 Tanzu Kubernetes Grid 叢集觸發輪流更新。請參閱透過執行 vSphere 命名空間 更新來更新 主管。
如果 Tanzu Kubernetes Grid 叢集與目標 主管 版本不相符,則可能需要先更新一或多個 Tanzu Kubernetes Grid 叢集,然後再更新 主管。請參閱針對 主管 的升級驗證 Tanzu Kubernetes Grid 叢集相容性。
關於 主管 更新
當您起始 主管 更新時,系統會建立新的控制平面虛擬機器,並將其加入到現有的 主管 控制平面。在此更新階段,vSphere 詳細目錄顯示四個控制平面虛擬機器,因為系統會新增更新的虛擬機器,然後移除舊的過期虛擬機器。物件會從其中一個舊的控制平面虛擬機器移轉到新的控制平面節點,並且會移除舊的控制平面虛擬機器。此程序會逐一重複,直到所有控制平面虛擬機器都更新為止。更新所有控制平面虛擬機器後,worker 節點會以類似的輪流更新方式進行更新。工作節點是 ESXi 主機,每個 ESXi 主機上的每個 Spherelet 程序都會逐一更新。
- 更新 vSphere 命名空間。
- 更新所有內容,包括 VMware 版本和 Kubernetes 版本。
更新 vSphere 命名空間
- 升級 vCenter Server。
- 執行 vSphere 命名空間 更新 (包括 Kubernetes 升級)。
若要執行 vSphere 命名空間 更新,請參閱透過執行 vSphere 命名空間 更新來更新 主管。
更新所有 vSphere with Tanzu 元件
您可以使用「全部更新」工作流程來更新所有 vSphere with Tanzu 元件。更新主要版本 (例如從 NSX-T 3.X 更新到 4 以及從 vSphere 7.x 更新到 8) 時,需要使用此類型的更新。
- 檢查《VMware 互通性對照表》(https://interopmatrix.vmware.com/Interoperability) 中的 vCenter Server 和 NSX 以確定相容性。vSphere with Tanzu 功能由隨 vCenter Server 提供的工作負載控制平面 (WCP) 軟體提供。
- 升級 NSX (如果相容)。
- 升級 vCenter Server。
- 升級 vSphere Distributed Switch。
- 升級 ESXi 主機。
- 檢查任何已佈建的 Tanzu Kubernetes Grid 叢集與目標 主管 版本的相容性。
- 更新 vSphere 命名空間 (包括 主管 Kubernetes 版本)。
- 更新 Tanzu Kubernetes Grid 叢集。
關於 Tanzu Kubernetes Grid 叢集更新
更新 主管 時,支援部署到該 主管 之 Tanzu Kubernetes Grid 叢集的基礎結構元件 (例如 Tanzu Kubernetes Grid 2.0) 同樣會進行更新。每個基礎結構更新可包括支援 Tanzu Kubernetes Grid 2.0 之服務 (CNI、CSI、CPI) 的更新,以及可套用至現有 Tanzu Kubernetes Grid 叢集的控制平面虛擬機器和 worker 節點的更新組態設定。為確保您的組態符合相容性需求,vSphere with Tanzu 會在輪流更新期間執行預先檢查,並強制執行符合性。
若要輪流更新 Tanzu Kubernetes Grid 叢集,您需要更新叢集資訊清單。請參閱更新主管上的 TKG 2 叢集。但是請注意,執行 vSphere 命名空間 更新時,系統會立即將更新的組態散佈到所有 Tanzu Kubernetes Grid 叢集。這些更新可自動觸發 Tanzu Kubernetes Grid 控制平面和 worker 節點的滾動更新。
在 Kubernetes 部署中,用於取代叢集節點的輪流更新程序與網繭的輪流更新類似。有兩個不同的控制器負責執行 Tanzu Kubernetes Grid 叢集的輪流更新:附加元件控制器和 TanzuKubernetesCluster 控制器。在這兩個控制器內,輪流更新包括三個關鍵階段:更新附加元件、更新控制平面以及更新工作節點。這些階段按順序進行,並執行預先檢查,以防止某個步驟在上一步驟徹底完成之前開始。如果判定這些步驟是不必要的,則可將其略過。例如,更新可能僅會影響工作節點,因此不需要任何附加元件或控制平面更新。
在更新程序期間,系統會新增一個叢集節點,並等待該節點與目標 Kubernetes 版本一起上線。然後,系統會將舊節點標記為待刪除,移至下一個節點,然後重複此程序。將在所有網繭都移除後才會刪除舊節點。例如,如果為網繭定義 PodDisruptionBudgets 以阻止完全清空某個節點,則該節點會遭封鎖,但在這些網繭可收回之前不會將其移除。系統會先升級所有控制平面節點,再升級工作節點。在更新期間,Tanzu Kubernetes Grid 叢集狀態會變更為「正在更新」。完成輪流更新程序後,Tanzu Kubernetes Grid 叢集狀態會變更為「正在執行」。
在 Kubernetes 版本升級期間,在 Tanzu Kubernetes Grid 叢集上執行之不受複寫控制站管理的網繭將在 Tanzu Kubernetes Grid 叢集更新期間,於 worker 節點清空時刪除。如果已手動或透過 vSphere 命名空間 更新自動觸發叢集更新,則會出現此情況。不受複寫控制站管理的網繭包括不是做為 Deployment 或 ReplicaSet 規格一部分建立的網繭。如需詳細資訊,請參閱 Kubernetes 說明文件中的〈網繭生命週期:網繭存留時間〉主題。