使用 Azure Kubernetes Fleet Manager 自動化跨多個叢集的 Kubernetes 和節點映射升級 (預覽)
管理大量叢集的平臺管理員通常會以安全且可預測的方式,在預備多個叢集的更新時發生問題(例如,升級節點OS映像或 Kubernetes 版本)。 為了解決這項挑戰,Azure Kubernetes Fleet Manager (Fleet) 可讓您使用更新執行跨多個叢集協調更新。
更新執行包含階段、群組和策略,而且可以手動套用一次性更新,或使用自動升級配置檔進行中的一般更新。 所有更新執行 (手動或自動化) 都會接受成員叢集維護視窗。
本文說明如何使用自動升級配置檔,在新的 Kubernetes 或節點映射版本可供使用時自動觸發更新執行。
重要
Azure Kubernetes 機群管理員預覽功能由客戶自行決定取用。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 客戶支援部門會竭盡全力支援一部分的 Azure Kubernetes 機群管理員預覽功能。 因此,這些功能不適合實際執行用途。
必要條件
閱讀自動升級配置檔的概念概觀,其中提供本指南所參考之組態的說明。
您必須有一或多個成員叢集的 Fleet 資源。 如果沒有,請遵循快速入門來建立機群資源,並將 Azure Kubernetes Service (AKS) 叢集加入為成員。
如果您想要使用更新策略,您應該使用更新執行操作說明文章中的指示來設定更新策略。 您需要更新策略資源識別碼,才能搭配自動升級配置檔使用。
設定下列環境變數:
export GROUP=<resource-group> export FLEET=<fleet-name> export AUTOUPGRADEPROFILE=<upgrade-profile-name> # Optional export STRATEGYID=<strategy-id> export CLUSTER=<aks-cluster-name>
您需要安裝 Azure CLI 2.61.0 版或更新版本。 若要安裝或升級,請參閱安裝 Azure CLI。
您也需要
fleet
Azure CLI 擴充功能 1.3.0 版或更新版本,您可以執行下列命令來安裝:az extension add --name fleet
執行下列命令,以更新為發行的最新版延伸模組:
az extension update --name fleet
注意
自動升級觸發的更新會執行您在 AKS 叢集層級設定的計畫性維護時段 。 如需詳細資訊,請參閱跨多個成員叢集的計劃性維護,其會說明更新執行如何處理已設定計劃性維護時段的成員叢集。
建立自動升級配置檔
在 Azure 入口網站 中,流覽至您的 Azure Kubernetes Fleet Manager 資源。
從 [服務] 功能表的 [設定] 底下,選取 [多重叢集更新>自動升級配置檔]。
選取 [建立],輸入配置檔的名稱,然後選取配置檔 是否為 [已啟用 ]。 發行新版本時,停用的自動升級配置檔不會觸發。
選取 [階段] 或 [逐一] 的更新順序。
為 通道選取下列其中一個選項:
- 穩定 - 使用 N-1 Kubernetes 正式推出次要版本的修補程式來更新叢集。
- 快速 - 使用最新版 (N) Kubernetes 正式推出次要版本的修補程式來更新叢集。
- 節點映射 - 僅更新節點映射版本。
如果您選取 [穩定 ] 或 [快速 ] 通道,您可以選擇如何套用節點映射更新:
- 最新映像:將自動升級配置檔中的每個 AKS 叢集更新為其 Azure 區域中該叢集可用的最新映像。
- 一致的映像:自動升級可在多個 Azure 區域中擁有 AKS 叢集,其中最新的可用節點映射可能不同(如需詳細資訊,請查看 發行追蹤器 )。 選取此選項可確保自動升級會挑選 所有 Azure 區域的最新通用 映像,以達到一致性。
注意
節點映像通道一律會使用一致的映像。
如果您使用 [階段] 選取更新順序,請選取或建立策略。
選取 [建立 ] 以建立自動升級配置檔。
檢視自動升級配置檔
刪除自動升級配置檔
注意
刪除進行中更新執行的自動升級配置檔不會影響將繼續執行的現有更新執行。
驗證自動升級
只有在新的 Kubernetes 或節點映射可供使用時,才會進行自動升級。 觸發自動升級時,會建立連結的更新執行,因此您可以使用 管理更新執行 來查看自動升級的結果。
您也可以檢查現有的版本作為基準,如下所示。
# Get Kubernetes version for a member cluster
az aks show \
--resource-group $GROUP \
--name $CLUSTER \
--query currentKubernetesVersion
# Get NodeImage version for a member cluster
az aks show \
--resource-group $GROUP \
--name $CLUSTER \
--query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"
更新執行完成後,您可以重新執行這些命令,並檢視已部署的更新版本。