自動升級 Azure Kubernetes Service (AKS) 叢集
AKS 叢集生命週期包含定期升級至最新 Kubernetes 版本。 請務必套用最新的安全性版本或升級,以取得最新功能。 在了解自動升級之前,請務必先了解 AKS 叢集升級基本概念。
注意
如果節點映像版本還不是最新版本,不論是手動或自動執行,所有升級作業都會升級節點映像版本。 最新版本取決於完整的 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.9、1.18.4、1.18.6 和 1.19.1 版,該叢集會升級至 1.17.9。 |
stable |
在次要版本 N-1 上自動將叢集升級為最新的支援修補程式版本,N 是最新的支援次要版本。 | 舉例來說,如果叢集執行 1.17.7 版,且有 1.17.9、1.18.4、1.18.6 和 1.19.1 版,該叢集會升級至 1.18.6。 |
rapid |
在最新的支援次要版本上,自動將叢集升級為最新的支援修補程式版本。 | 如果叢集的 Kubernetes 版本為 N-2 次要版本,N 為最新的支援次要版本,則叢集會先在 N-1 次要版本上,升級至最新的支援修補程式版本。 舉例來說,如果叢集執行 1.17.7 版,且有 1.17.9、1.18.4、1.18.6 和 1.19.1 版,該叢集會先升級至 1.18.6,再升級至 1.19.1。 |
node-image (舊版) |
自動將節點映像升級至可用的最新版本。 | Microsoft 經常 (通常是每週) 提供映像節點的修補程式和新映像,但除非您升級節點映像,否則執行中節點不會取得新映像。 若開啟節點映像通道,就會在有新版本時,自動更新您的節點映像。 如果您使用此通道,依預設會停用 Linux [自動升級]。 只要仍支援 Kubernetes 次要版本,節點映像升級就適用於已淘汰的修補程式版本。 此通道已不再建議使用,並計劃在未來淘汰。 如需可自動升級節點映像的選項,請參閱節點映像自動升級中的 NodeImage 通道。 |
注意
使用叢集自動升級時,請記住下列資訊:
叢集自動升級只會更新至 Kubernetes 的正式發行版本,不會更新至預覽版。
使用 AKS,您可以建立叢集,而不需要指定確切的修補程式版本。 建立叢集而不指定修補程式時,該叢集會執行次要版本的最新正式發行修補程式。 若要深入了解,請參閱 AKS 支援時段。
自動升級需要叢集的 Kubernetes 版本處於 AKS 支援時段內,即使使用
node-image
通道也一樣。如果您使用預覽 API
11-02-preview
或更新版本,並且選取node-image
叢集自動升級通道,節點映像自動升級通道就會自動設定為NodeImage
。每個叢集只能與單一自動升級通道相關聯。 這是因為指定的通道決定了在叢集上執行的 Kubernetes 版本。
如果您的叢集沒有自動升級通道,且您啟用 LTS (長期支援),則預設為
patch
自動升級通道。
將叢集自動升級與新的 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 規則內),請選擇
stable
或rapid
通道。 - 如果您想要盡快取得最新的修補程式,請使用
patch
通道。 如果您想要讓代理程式集區一律執行最新的節點映像,則node-image
通道很適合。 - 若要在使用不同的叢集升級通道時自動升級節點映像,請考慮使用節點映像自動升級
NodeImage
通道。 - 遵循操作員最佳做法。
- 遵循 PDB 最佳做法。
- 如需升級疑難排解資訊,請參閱 AKS 疑難排解文件。
如需升級最佳做法和其他考量的詳細討論,請參閱 AKS 修補和升級指導。