自動升級 Azure Kubernetes Service (AKS) 叢集

AKS 叢集生命週期包含定期升級至最新 Kubernetes 版本。 請務必套用最新的安全性版本或升級,以取得最新功能。 在了解自動升級之前,請務必先了解 AKS 叢集升級基本概念

注意

如果節點映像版本還不是最新版本,不論是手動或自動執行,所有升級作業都會升級節點映像版本。 最新版本取決於完整的 AKS 版本,您可以瀏覽 AKS 發行版本追蹤器以進行判斷。

自動升級會先升級控制平面,然後逐一升級代理程式集區。

為何使用叢集自動升級

叢集自動升級提供智慧型機制,可產生有形的時間和營運成本優勢。 藉由啟用自動升級,您可以確保叢集是最新的,且不會錯過來自 AKS 和上游 Kubernetes 的最新功能或修補程式。

AKS 會遵循嚴格的支援性版本控制視窗。 透過正確選取的自動升級通道,您可以避免叢集落入不支援的版本。 如需 AKS 支援時段的詳細資訊,請參閱別名次要版本

比較客戶起始的自動升級與 AKS 起始的自動升級

您可以使用下列指導來指定叢集自動升級特定項目。 升級會根據您指定的頻率進行,建議進行升級以便繼續使用支援的 Kubernetes 版本。

AKS 還可為不支援的叢集起始自動升級。 當 n-3 版本的叢集 (其中 n 是支援的最新 AKS GA 次要版本) 即將降至 n-4 時,AKS 會自動將叢集升級為 n-2,以符合 AKS 支援原則。 預設會啟用自動將平台支援叢集升級至支援版本的功能。 在自動升級作業期間,將會升級已停止的節點集區。 升級會在節點集區啟動時套用至節點。 若要盡量減少中斷,請設定維護時段

叢集自動升級限制

如果使用叢集自動升級,則再也無法先升級控制平面,然後升級個別節點集區。 叢集自動升級一律會將控制平面和節點集區一起升級。 您不能只升級控制平面。 執行 az aks upgrade --control-plane-only 命令會引發下列錯誤:NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.

如果使用 node-image 叢集自動升級通道或 NodeImage 節點映像自動升級通道,預設會停用 Linux 自動升級

叢集自動升級通道

自動完成的升級功能上與手動升級相同。 選取的自動升級通道決定了升級的時間。 變更自動升級時,請等候 24 小時以使變更生效。 自動升級叢集會遵循與手動升級叢集相同的流程。 如需詳細資訊,請參閱升級 AKS 叢集

下列是可用的升級通道:

通道 動作 範例
none 停用自動升級,並將叢集保持在目前 Kubernetes 版本。 如果保持不變,則為預設設定。
patch 修補程式推出時,自動將叢集升級為最新的支援修補程式版本,同時保持相同的次要版本。 舉例來說,如果叢集執行 1.17.7 版,且有 1.17.91.18.41.18.61.19.1 版,該叢集會升級至 1.17.9
stable 在次要版本 N-1 上自動將叢集升級為最新的支援修補程式版本,N 是最新的支援次要版本。 舉例來說,如果叢集執行 1.17.7 版,且有 1.17.91.18.41.18.61.19.1 版,該叢集會升級至 1.18.6
rapid 在最新的支援次要版本上,自動將叢集升級為最新的支援修補程式版本。 如果叢集的 Kubernetes 版本為 N-2 次要版本,N 為最新的支援次要版本,則叢集會先在 N-1 次要版本上,升級至最新的支援修補程式版本。 舉例來說,如果叢集執行 1.17.7 版,且有 1.17.91.18.41.18.61.19.1 版,該叢集會先升級至 1.18.6,再升級至 1.19.1
node-image 自動將節點映像升級至可用的最新版本。 Microsoft 經常 (通常是每週) 提供映像節點的修補程式和新映像,但除非您升級節點映像,否則執行中節點不會取得新映像。 若開啟節點映像通道,就會在有新版本時,自動更新您的節點映像。 如果您使用此通道,依預設會停用 Linux [自動升級]。 只要仍支援 Kubernetes 次要版本,節點映像升級就適用於已淘汰的修補程式版本。

注意

使用叢集自動升級時,請記住下列資訊:

  • 叢集自動升級只會更新至 Kubernetes 的正式發行版本,不會更新至預覽版。

  • 使用 AKS,您可以建立叢集,而不需要指定確切的修補程式版本。 建立叢集而不指定修補程式時,該叢集會執行次要版本的最新正式發行修補程式。 若要深入了解,請參閱 AKS 支援時段

  • 自動升級需要叢集的 Kubernetes 版本處於 AKS 支援時段內,即使使用 node-image 通道也一樣。

  • 如果您使用預覽 API 11-02-preview 或更新版本,並且選取 node-image 叢集自動升級通道,節點映像自動升級通道就會自動設定為 NodeImage

  • 每個叢集只能與單一自動升級通道相關聯。 這是因為指定的通道決定了在叢集上執行的 Kubernetes 版本。

將叢集自動升級與新的 AKS 叢集搭配使用

  • 在使用 az aks create 命令和 auto-upgrade-channel 參數建立新的叢集時,設定自動升級通道。

    az aks create --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable --generate-ssh-keys
    

將叢集自動升級與現有的 AKS 叢集搭配使用

  • 使用 az aks update 命令搭配 auto-upgrade-channel 參數,在現有叢集上設定自動升級通道。

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
    

將自動升級與計劃性維護搭配使用

如果使用計劃性維護和叢集自動升級,升級就會在指定的維護時段開始。

注意

為確保正常運作,請使用四小時以上的維護時段。

如需如何使用計劃性維護設定維護期間的詳細資訊,請參閱 使用計劃性維護來排程 Azure Kubernetes Service (AKS) 叢集的維護時段。

叢集自動升級的最佳做法

使用下列最佳做法可協助您在使用自動升級時獲得最大成功:

  • 若要確保叢集一律處於支援的版本 (也就是在 N-2 規則內),請選擇 stablerapid 通道。
  • 如果您想要盡快取得最新的修補程式,請使用 patch 通道。 如果您想要讓代理程式集區一律執行最新的節點映像,則 node-image 通道很適合。
  • 若要在使用不同的叢集升級通道時自動升級節點映像,請考慮使用節點映像自動升級NodeImage 通道。
  • 遵循操作員最佳做法
  • 遵循 PDB 最佳做法
  • 如需升級疑難排解資訊,請參閱 AKS 疑難排解文件

如需升級最佳做法和其他考量的詳細討論,請參閱 AKS 修補和升級指導