Azure Kubernetes Service (AKS) 叢集的升級選項

本文涵蓋 AKS 叢集的不同升級選項。 若要執行基本的 Kubernetes 版本升級,請參閱升級 AKS 叢集

若為使用多個節點集區或 Windows 伺服器節點的 AKS 叢集,請參閱在 AKS 中升級節點集區 (機器翻譯)。 若要升級特定節點集區而不執行 Kubernetes 叢集升級,請參閱升級特定節點集區

執行手動升級

您可以執行手動升級來控制叢集升級至新的 Kubernetes 版本的時機。 當您想要在升級生產叢集之前測試新的 Kubernetes 版本時,手動升級十分實用。 您也可以使用手動升級,將叢集升級至非最新可用版本的特定 Kubernetes 版本。

若要執行手動升級,請參閱下列文章:

設定自動升級

您可以設定自動升級,將叢集自動升級至最新的可用 Kubernetes 版本。 當您想要確保叢集一律執行最新的 Kubernetes 版本時,自動升級十分實用。 您也可以使用自動升級來確保叢集一律執行支援的 Kubernetes 版本。

若要設定自動升級,請參閱下列文章:

跨多個可用性區域的節點集區特殊考量

AKS 在節點群組中使用盡力區域平衡。 在升級激增期間,虛擬機器擴展集中的激增節點區域事先未知,這可能會在升級期間暫時造成不平衡的區域設定。 但 AKS 會在升級完成後刪除激增節點,並保持原始區域平衡。 如果您想要在升級期間保持區域平衡,您可以將激增增加至三個節點的倍數,而虛擬機器擴展集會使用最佳區域平衡在跨可用性區域平衡節點。 若使用最佳區域平衡,擴展集會嘗試縮減或擴增以維持平衡。 不過,如果基於某些原因而不能這麼做 (例如,如果某一個區域無法運作,擴展集不能在該區域中建立新的 VM),該擴展集會允許暫時性的不平衡,以成功進行縮減或擴增。

如果您有 Azure 本地備援儲存體 (LRS) 資料箱磁碟支援的永續性磁碟區宣告 (PVC),它們會綁定特定區域,且如果激增節點不符合 PVC 的區域,可能無法立即復原。 若區域不符合,當升級作業繼續清空節點但 PV 綁定區域時,這可能會造成應用程式停機。 若要處理此案例並維持高可用性,請在您的應用程式上設定 Pod 中斷預算,以允許 Kubernetes 在清空作業期間遵守可用性需求。

最佳化升級以改善效能,並將中斷降至最低

計劃性維護期間最大激增Pod 中斷預算節點清空逾時以及節點測試時間的組合可能會大幅提高節點升級在維護期間結束時成功完成的可能性,同時將中斷降至最低。

  • 計劃性維護期間可讓服務小組在預先定義的時段內排程自動升級,通常是低流量期間,以將工作負載影響降到最低。 我們建議至少四個小時的時間範圍。
  • 節點集區上的 最大激增允許在升級流程期間要求額外的配額,並限制同時選取升級的節點數目。 較高的最大激增會使升級流程更快速。 我們不建議將它設定為 100%,因為它會同時升級所有節點,這可能會導致執行中的應用程式中斷。 針對生產節點集區,我們建議將最大激增設定為 33%
  • Pod 中斷預算是針對服務應用程式所設定,並限制在自發性中斷期間可關閉的 Pod 數目,例如 AKS 控制的節點升級。 它可以設定為 minAvailable 複本,指出需要作用的應用程式 Pod 數目下限,或 maxUnavailable 複本,指出可以終止的應用程式 Pod 數目上限,確保應用程式的高可用性。 請參閱設定 Pod 中斷預算 (PDB) 所提供的指引。 PDB 值應該經過驗證,以判斷最適合您特定服務的設定。
  • 節點集區上的節點清空逾時可讓您設定在升級期間收回 Pod 和正常終止每個節點的等候持續時間。 處理長時間執行的工作負載時,此選項十分實用。 指定節點清空逾時 (以分鐘為單位) 時,AKS 會遵守等候 Pod 中斷預算。 如果未指定,則預設逾時時間為 30 分鐘。
  • 節點測試時間會以受控制的方式協助錯開節點升級,並可將升級期間的應用程式停機時間降到最低。 您可以指定等候時間,最好盡量合理地接近 0 分鐘,以檢查節點升級之間的應用程式整備程度。 如果未指定,則預設值是 0 分鐘。 節點測試時間與節點集區中可用的最大激增和節點清空逾時屬性搭配運作,以在升級速度和應用程式可用性方面提供正確的結果。

下一步

本文列出 AKS 叢集的不同升級選項。 如需升級最佳做法和其他考量的詳細討論,請參閱 AKS 修補檔和升級指導