|
1 | 1 | --- |
2 | | -title: AKS upgrade not allowed or blocked due to unsupported Kubernetes version or node pool version skew |
3 | | -description: Learn how to troubleshoot AKS upgrade not allowed or blocked due to unsupported Kubernetes version or node pool version skew. |
| 2 | +title: AKS upgrade not allowed or blocked because of unsupported Kubernetes version or node pool version skew |
| 3 | +description: Learn how to troubleshoot AKS upgrade not allowed or blocked because of unsupported Kubernetes version or node pool version skew. |
4 | 4 | ms.date: 08/20/2025 |
5 | 5 | editor: v-jsitser |
6 | 6 | ms.reviewer: v-liuamson |
7 | 7 | ms.service: azure-kubernetes-service |
8 | | -#Customer intent: As an Azure Kubernetes user, I want to troubleshoot AKS upgrade not allowed or blocked due to unsupported Kubernetes version or node pool version skew so that I can successfully upgrade an AKS cluster by using the Azure CLI. |
9 | | -ms.custom: sap:Create, Upgrade, Scale and Delete operations (cluster or nodepool) |
| 8 | +#Customer intent: As an Azure Kubernetes user, I want to troubleshoot an AKS upgrade not allowed or blocked because of an unsupported Kubernetes version or node pool version skew so that I can successfully upgrade an AKS cluster by using the Azure CLI. |
| 9 | +ms.custom: sap: Create, Upgrade, Scale and Delete operations (cluster or node pool) |
10 | 10 | --- |
11 | | -# AKS upgrade not allowed or blocked due to unsupported Kubernetes version or node pool version skew |
| 11 | +# Troubleshoot AKS upgrade errors because of version skew, incompatibility, or lack of support |
12 | 12 |
|
13 | 13 | ## Prerequisites |
14 | 14 |
|
15 | | -This article requires Azure CLI version 2.67.0 or a later version. |
16 | | -To find the version number, run `az --version`. If you need to install or |
17 | | -upgrade Azure CLI, see [How to install the Azure CLI](/cli/azure/install-azure-cli). |
| 15 | +This article requires Azure CLI version 2.67.0 or a later version. To find the version number, run `az --version`. If you have to install or upgrade the Azure CLI, see [How to install the Azure CLI](/cli/azure/install-azure-cli). |
18 | 16 |
|
19 | | -For more detailed information about the upgrade process, see the "Upgrade an AKS cluster" section in |
20 | | -[Upgrade an Azure Kubernetes Service (AKS) cluster](/azure/aks/upgrade-cluster#upgrade-an-aks-cluster). |
| 17 | +For more detailed information about the upgrade process, see the "Upgrade an AKS cluster" section in [Upgrade options and recommendations for Azure Kubernetes Service (AKS) clusters](/azure/aks/upgrade-cluster#upgrade-an-aks-cluster). |
21 | 18 |
|
22 | 19 | ## Symptoms |
23 | 20 |
|
24 | | -When attempting to upgrade an AKS cluster using the Azure CLI, the upgrade operation is blocked with one or more of the following errors: |
| 21 | +When you try to upgrade an AKS cluster by using the Azure CLI, the upgrade operation is blocked and returns one or more of the following error messages. |
25 | 22 |
|
26 | | -**K8sVersionNotSupported:** Managed cluster `<ClusterName>` is on version 1.25.6 which is not supported in this region. |
27 | | -Please use the `[azaks get-versions]` command to get the supported version list in this region. |
28 | | -For more information, see [Supported Kubernetes versions in Azure Kubernetes Service (AKS)](https://aka.ms/supported-version-list). |
| 23 | +**Error message 1** |
29 | 24 |
|
30 | | -Or |
| 25 | +**K8sVersionNotSupported:** Managed cluster `<ClusterName>` is on version 1.25.6 which is not supported in this region. Please use the `[azaks get-versions]` command to get the supported version list in this region. For more information, see [Supported Kubernetes versions in Azure Kubernetes Service (AKS)](https://aka.ms/supported-version-list). |
31 | 26 |
|
32 | | -**OperationNotAllowed:** Upgrading Kubernetes version 1.24.9 to 1.26.6 |
33 | | -is not allowed. Available upgrades: [1.29.15 1.29.14 1.29.13 1.29.12 |
34 | | -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 |
35 | | -1.29.0]. For more information, see [AKS supported Kubernetes versions](https://aka.ms/aks-supported-k8s-ver) for version |
36 | | -details. |
| 27 | +**Error message 2** |
37 | 28 |
|
38 | | -Or |
| 29 | +**OperationNotAllowed:** Upgrading Kubernetes version 1.24.9 to 1.26.6 is not allowed. Available upgrades: [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]. For more information, see [AKS supported Kubernetes versions](https://aka.ms/aks-supported-k8s-ver) for version details. |
39 | 30 |
|
40 | | -**NodePoolMcVersionIncompatible:** Node pool version 1.24.9 and control |
41 | | -plane version 1.29.15 is incompatible. Minor version of node pool cannot |
42 | | -be more than 3 versions less than control plane's version. Minor version |
43 | | -of node pool is 24 and control plane is 29. For more information, see |
44 | | -[AKS upgrade version skew policy](https://aka.ms/aks/UpgradeVersionRules). |
| 31 | +**Error message 3** |
| 32 | + |
| 33 | +**NodePoolMcVersionIncompatible:** Node pool version 1.24.9 and control plane version 1.29.15 is incompatible. Minor version of node pool cannot be more than 3 versions less than control plane's version. Minor version of node pool is 24 and control plane is 29. For more information, see [AKS upgrade version skew policy](https://aka.ms/aks/UpgradeVersionRules). |
45 | 34 |
|
46 | 35 | ## Cause |
47 | 36 |
|
48 | | -The upgrade is not allowed due to one or more of the following reasons: |
| 37 | +The upgrade is not allowed for one or more of the following reasons: |
49 | 38 |
|
50 | | -- The target Kubernetes version (e.g., 1.25 or 1.26) is no longer supported in the selected Azure region. |
| 39 | +- The target Kubernetes version (for example, 1.26 or 1.25) is no longer supported in the selected Azure region. |
51 | 40 |
|
52 | | -- Skipping minor versions during upgrades (e.g., from 1.24.x to 1.26.x or 1.27.x) is not allowed unless the current version is unsupported. |
| 41 | +- Skipping minor versions during upgrades (for example, from 1.24.*x* to 1.26.*x* or 1.27.*x*) is not allowed unless the current version is unsupported. |
53 | 42 |
|
54 | | -- A control plane and node pool version skew (**NodePoolMcVersionIncompatible**) occurred when attempting to upgrade only the control plane while the nodepool version is too far behind causing a big gap such that the node pool version is more than three minor versions behind the control plane version. |
| 43 | +- A control plane and node pool version skew (**NodePoolMcVersionIncompatible**) occurs if you try to upgrade only the control plane. In this situation, the node pool version becomes more than three minor versions behind the control plane version. A gap of this size or greater causes the error. |
55 | 44 |
|
56 | | -To understand more about these errors, you can refer to following articles: |
| 45 | +To understand more about these errors, refer to following articles: |
57 | 46 |
|
58 | 47 | - [AKS supported Kubernetes versions](https://aka.ms/aks-supported-k8s-ver) |
59 | 48 | - [AKS upgrade version skew policy](https://aka.ms/aks/UpgradeVersionRules) |
60 | 49 |
|
61 | 50 | ## Solution |
62 | 51 |
|
63 | | -### Step 1: Confirm the current version and available upgrade paths |
| 52 | +### Step 1: Verify the current version and available upgrade paths |
64 | 53 |
|
65 | | -Run the following command to view the current Kubernetes version and supported upgrade targets: |
| 54 | +To view the current Kubernetes version and supported upgrade targets, run the following command: |
66 | 55 |
|
67 | 56 | ```azurecli |
68 | 57 | az aks get-upgrades --resource-group <RG> --name <ClusterName> --output table |
69 | 58 | ``` |
70 | 59 |
|
71 | | -If only newer versions such as 1.29.x are listed, and intermediate versions like 1.25.x, 1.26.x, or 1.27.x are missing, this indicates that those versions are deprecated in your region. |
| 60 | +If only newer versions, such as 1.29.*x*, are listed, and intermediate versions, such as 1.27.*x*, 1.26.*x*, or 1.25.*x*, are missing, this indicates that |
| 61 | +those versions are deprecated in your region. |
72 | 62 |
|
73 | | -### Step 2: Attempt full upgrade (control plane and node pool together) |
| 63 | +### Step 2: Try a full upgrade (control plane and node pool together) |
74 | 64 |
|
75 | | -Due to the version skew policy (**control planes cannot be more than 3 minor versions ahead of node pools**), a separate control-plane-only upgrade may not be allowed. Instead, upgrade both the control plane and node pool together: |
| 65 | +Because of the version skew policy ("control planes cannot be more than 3 minor versions ahead of node pools"), |
| 66 | +a separate control-plane-only upgrade might not be allowed. Instead, upgrade both the control plane and node pool together: |
76 | 67 |
|
77 | 68 | ```azurecli |
78 | 69 | az aks upgrade --resource-group <RG> --name <ClusterName> --kubernetes-version <available upgrade version> --yes |
79 | 70 | ``` |
80 | 71 |
|
81 | | -This will ensure compliance with the version skew policy, use of a supported Kubernetes version and upgrade of both components in a coordinated manner. |
| 72 | +This method makes sure that the following conditions apply: |
| 73 | + |
| 74 | +- You're in compliance with the version skew policy. |
| 75 | +- You use a supported Kubernetes version. |
| 76 | +- You upgrade both components in a coordinated manner. |
82 | 77 |
|
83 | | -### Additional Tips |
| 78 | +### Additional tips |
84 | 79 |
|
85 | | -- Always validate supported versions in your region using: |
| 80 | +- Always validate supported versions in your region by using the following command: |
86 | 81 |
|
87 | 82 | ```azurecli |
88 | 83 | az aks get-versions --location <region> --output table |
89 | 84 | ``` |
90 | 85 |
|
91 | | -- Avoid attempting to upgrade to deprecated versions. AKS may enforce immediate skips to supported long-term versions (e.g., 1.29). |
| 86 | +- Avoid trying to upgrade to deprecated versions. In this situation, AKS might enforce an immediate skip to a supported long-term version (for example, to version 1.29). |
92 | 87 |
|
93 | | -- **For AKS clusters running significantly outdated Kubernetes versions**, the recommended best practices include following: |
| 88 | +- In the case of AKS clusters that are running significantly outdated Kubernetes versions, the recommended best practices are as follows: |
94 | 89 |
|
95 | | - - **Create a New Cluster:** Spin up a new AKS cluster with a supported |
96 | | - Kubernetes version. |
| 90 | + - **Create a new cluster:** create an AKS cluster by using a supported Kubernetes version. |
97 | 91 |
|
98 | | - - **Migrate Workloads:** Transfer your workloads to the new cluster to |
99 | | - ensure they run on supported versions. |
| 92 | + - **Migrate workloads:** Transfer your workloads to the new cluster to make sure that they run on supported versions. |
100 | 93 |
|
101 | | - - **Avoid Upgrading Across Multiple Versions:** Instead of upgrading |
102 | | - through several minor versions, moving to a new cluster minimizes |
103 | | - complexity and potential issues. |
| 94 | + - **Avoid upgrading across multiple versions:** Instead of upgrading through several minor versions, move to a new cluster to minimize complexity and avoid potential issues. |
104 | 95 |
|
105 | | - - **Backup and Validate Data:** Ensure all data is backed up and validated |
106 | | - before migration. |
| 96 | + - **Back up and validate data:** Make sure that all data is backed up and validated before a migration. |
107 | 97 |
|
108 | | - - **Test Thoroughly:** Perform thorough testing in a staging environment |
109 | | - to identify and resolve any compatibility issues. |
| 98 | + - **Test thoroughly:** Perform thorough testing in a staging environment to identify and resolve any compatibility issues. |
110 | 99 |
|
111 | 100 | [!INCLUDE [azure-help-support](../../../includes/azure-help-support.md)] |
0 commit comments