共用方式為


針對因版本偏差、不相容或缺乏支援而造成的 AKS 升級錯誤進行疑難排解

先決條件

本文需要 Azure CLI 2.67.0 版或更新版本。 若要尋找版本號碼,請執行 az --version。 如果您必須安裝或升級 Azure CLI,請參閱如何 安裝 Azure CLI

如需升級程式的詳細資訊,請參閱 Azure Kubernetes Service (AKS) 叢集的升級選項和建議中的「升級 AKS 叢集」一節。

癥狀

當您嘗試使用 Azure CLI 升級 AKS 叢集時,升級作業會遭到封鎖,並傳回下列一或多個錯誤訊息。

錯誤訊息 1:K8sVersionNotSupported

<ClusterName> 是 1.25.6 版,此區域不支援。 請使用命令 [az aks get-versions] 取得此區域中支援的版本清單。 如需詳細資訊,請參閱 Azure Kubernetes Service (AKS) 中支援的 Kubernetes 版本

錯誤訊息 2:OperationNotAllowed

不允許將 Kubernetes 版本 1.24.9 升級至 1.26.6。 可用升級:[1.29.15 1.29.14 1.29.13 1.29.12 1.29.11 1.29.10 1.29.9 1.29.8 1.29.7 1.29.6 1.29.5 1.29.4 1.29.2 1.29.0]。 如需詳細資訊,請參閱 AKS 支援的 Kubernetes 版本 ,以取得版本詳細資料。

錯誤訊息 3:NodePoolMcVersionIncompatible

節點集區 1.24.9 版和控制平面 1.29.15 版不相容。 節點集區的次要版本不能比控制平面的版本少 3 個版本。 節點集區的次要版本為 24,控制平面為 29。 如需詳細資訊,請參閱 AKS 升級版本偏差原則

原因

由於下列一或多個原因,不允許升級:

  • 選取的 Azure 區域不再支援目標 Kubernetes 版本 (例如 1.26 或 1.25)。

  • 您不允許在升級期間略過次要版本(例如,從 1.24.x 到 1.26。x 或 1.27。x) 除非目前版本不受支援。

  • 如果您嘗試只升級控制平面,則會發生控制平面與節點集區之間的版本偏差 (NodePoolMcVersionIncompatible)。 在此情況下,節點集區版本比控制平面版本落後超過三個次要版本。 此大小或更大的間隙會導致錯誤。

若要進一步瞭解這些錯誤,請參閱下列文章:

Solution

步驟 1:驗證目前版本和可用的升級路徑

若要檢視目前的 Kubernetes 版本和支援的升級目標,請執行下列命令:

az aks get-upgrades --resource-group <RG> --name <ClusterName> --output table

如果只有較新的版本,例如 1.29.x,而中間版本,例如 1.27.x,1.26.x,或 1.25.x,缺失,則表示這些版本在您所在的區域中已不再建議使用。

步驟 2:嘗試進行完整升級(將控制平面和節點集區一起升級)

由於版本偏差原則規定,控制平面不能比節點集區的版本多超過三個小版本,因此可能不允許單獨進行僅控制平面的升級。 相反,請將控制平面和節點池一同升級:

az aks upgrade --resource-group <RG> --name <ClusterName> --kubernetes-version <available upgrade version> --yes

此方法可確保下列條件適用:

  • 您符合版本不一致性政策。
  • 您使用支援的 Kubernetes 版本。
  • 您可以以協調的方式升級這兩個元件。

其他提示

  • 一律使用下列命令來驗證您所在區域中支援的版本:
az aks get-versions --location <region> --output table
  • 避免嘗試升級至已淘汰的版本。 在此情況下,AKS 可能會強制立即跳至支援的長期版本 (例如,至 1.29 版) 。

  • 如果 AKS 叢集執行違反偏差原則的過時 Kubernetes 版本,建議的最佳做法如下:

    • 建立新的叢集: 使用支援的 Kubernetes 版本建立 AKS 叢集。

    • 移轉工作負載: 若要確保您的工作負載在支援的版本上執行,請將它們傳輸到新的叢集。

    • 避免跨多個版本升級: 不要透過多個次要版本進行升級,而是移至新的叢集,以將複雜性降到最低並避免潛在問題。

    • 備份和驗證資料: 請確定在移轉之前備份並驗證所有資料。

    • 徹底測試: 若要識別並解決任何相容性問題,請在預備環境中執行徹底測試。

(../../../includes/azure-help-support.md)