From 163d1681c0c2782f5c3178537f31e628c1a5a01e Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Wed, 7 Jan 2026 11:46:57 -0800 Subject: [PATCH 1/9] added feature recommendations --- .../zonalallocation-allocationfailed-error.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index 5408f9fc1c4..ddfb7ac4e80 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -64,6 +64,24 @@ Try one or more of the following methods: For more information about how to fix this error, see [Resolve errors for SKU not available](/azure/azure-resource-manager/troubleshooting/error-sku-not-available). +## Solution 2: Use Node Auto Provisioning + +[Node Auto Provisioning](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). + +## Solution 3: Use Priority Expanders with Cluster Autoscaler + +The Cluster Autoscaler [priority expander](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md) lets you define an ordered list of node pools to attempt scaling in sequence. Example: Spot pools first (cost optimization), then on-demand pools (availability fallback). CA will attempt the highest priority pool first. If scaling fails (e.g. due to allocation failure), it attempts the next pool. + +Limitations: + +- CA does NOT create new node pools; it only works with existing pools. If you want dynamic SKU provisioning, use Node Auto Provisioning (NAP), which can create pools based on SKU availability. + +- Priority expander works at node pool level, not SKU level. You must pre-create pools for each SKU family you want to use. + +## Solution 4: Upgrade in place using MaxUnavailable + +If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/en-us/azure/aks/upgrade-options#optimize-upgrades-to-improve-performance-and-minimize-disruptions) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. + ## Cause 2: Too many constraints for a virtual machine to accommodate If you receive an `OverconstrainedAllocationRequest` error code, the Azure Compute platform can't allocate a new virtual machine (VM) to accommodate the required constraints. These constraints usually (but not always) include the following items: From ddd72271f92fb47a1522abd1d66e0087160a95ca Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Wed, 7 Jan 2026 16:06:12 -0800 Subject: [PATCH 2/9] added upgrade options --- .../zonalallocation-allocationfailed-error.md | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index ddfb7ac4e80..892d3cf5a6c 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -64,11 +64,19 @@ Try one or more of the following methods: For more information about how to fix this error, see [Resolve errors for SKU not available](/azure/azure-resource-manager/troubleshooting/error-sku-not-available). -## Solution 2: Use Node Auto Provisioning +## Solution 2: Dynamically scale using Node Auto Provisioning [Node Auto Provisioning](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). -## Solution 3: Use Priority Expanders with Cluster Autoscaler +## Solution 3: Upgrade in place using MaxUnavailable + +If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/en-us/azure/aks/upgrade-options#optimize-upgrades-to-improve-performance-and-minimize-disruptions) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. + +## Solution 4: Use Deployment Recommender in portal for new cluster creates + +During an AKS cluster create in the Azure portal, if the selected nodepool sku is not available in the chosen region and zone(s), the deployment recommender will recommend an alternative sku, zones, and region combination that has availability. + +## Solution 5: Use Priority Expanders with Cluster Autoscaler The Cluster Autoscaler [priority expander](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md) lets you define an ordered list of node pools to attempt scaling in sequence. Example: Spot pools first (cost optimization), then on-demand pools (availability fallback). CA will attempt the highest priority pool first. If scaling fails (e.g. due to allocation failure), it attempts the next pool. @@ -78,10 +86,6 @@ Limitations: - Priority expander works at node pool level, not SKU level. You must pre-create pools for each SKU family you want to use. -## Solution 4: Upgrade in place using MaxUnavailable - -If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/en-us/azure/aks/upgrade-options#optimize-upgrades-to-improve-performance-and-minimize-disruptions) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. - ## Cause 2: Too many constraints for a virtual machine to accommodate If you receive an `OverconstrainedAllocationRequest` error code, the Azure Compute platform can't allocate a new virtual machine (VM) to accommodate the required constraints. These constraints usually (but not always) include the following items: @@ -93,7 +97,7 @@ If you receive an `OverconstrainedAllocationRequest` error code, the Azure Compu - Ephemeral disk - Proximity placement group (PPG) -## Solution 2: Don't associate a proximity placement group with the node pool +## Solution 1: Don't associate a proximity placement group with the node pool If you receive an `OverconstrainedAllocationRequest` error code, you can try to create a new node pool that isn't associated with a proximity placement group. @@ -101,7 +105,7 @@ If you receive an `OverconstrainedAllocationRequest` error code, you can try to You're trying to deploy a node pool in a dedicated host group that has limited capacity or doesn't satisfy the fault domain constraint. -## Solution 3: Ensure you have enough dedicated hosts for your AKS nodes/VMSS +## Solution 1: Ensure you have enough dedicated hosts for your AKS nodes/VMSS As per [Planning for ADH Capacity on AKS](/azure/aks/use-azure-dedicated-hosts#planning-for-adh-capacity-on-aks), you're responsible for planning enough dedicated hosts to span as many fault domains as required by your AKS VMSS. For example, if the AKS VMSS is created with *FaultDomainCount=2*, you need at least two dedicated hosts in different fault domains (*FaultDomain 0* and *FaultDomain 1*). From e7044eeca02b54da78dd78adedb7726070d2e4e0 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Thu, 8 Jan 2026 15:33:08 -0800 Subject: [PATCH 3/9] updated error messages --- .../zonalallocation-allocationfailed-error.md | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index 892d3cf5a6c..dfc5021ba5c 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -21,33 +21,21 @@ This article describes how to identify and resolve the `ZonalAllocationFailed`, ## Symptoms -When you try to create an AKS cluster, you receive the following error message: +When you try to create, upgrade or scale up a cluster, you receive one of the following error messages: -> Reconcile vmss agent pool error: VMSSAgentPoolReconciler retry failed: +> Code: Code="ZonalAllocationFailed" > -> Category: InternalError; -> -> SubCode: ZonalAllocationFailed; -> -> Dependency: Microsoft.Compute/VirtualMachineScaleSet; -> -> OrginalError: Code="ZonalAllocationFailed" -> -> Message="**Allocation failed. We do not have sufficient capacity for the requested VM size in this zone.** Read more about improving likelihood of allocation success at "; -> -> AKSTeam: NodeProvisioning - -Or, when you try to upgrade or scale up a cluster, you receive the following error message: +> Message="Allocation failed. We do not have sufficient capacity for the requested VM size in this zone. Read more about improving likelihood of allocation success at http://aka.ms/allocation-guidance. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details. This is not AKS controlled behavior, please ask help to VMSS team for allocation failure. If the error is due to capacity constrain, consider upgrade with maxUnavailable instead of maxSurge, details: aka.ms/aks/maxUnavailable." -> Code="OverconstrainedAllocationRequest" +> Code="AllocationFailed" > -> Message="**Allocation failed. VM(s) with the following constraints cannot be allocated, because the condition is too restrictive.** Please remove some constraints and try again." +> Message="The VM allocation failed due to an internal error. Please retry later or try deploying to a different location. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details.This is not AKS controlled behavior, please ask help to VMSS team for allocation failure." -Or, when you use dedicated hosts in a cluster and try to create or scale up a node pool, you receive the following error message: -> Code="AllocationFailed" + +> Code="OverconstrainedAllocationRequest" > -> Message="**Allocation failed. VM allocation to the dedicated host failed. Please ensure that the dedicated host has enough capacity or try allocating elsewhere.**" +> Message="Create or update VMSS failed. Allocation failed. VM(s) with the following constraints cannot be allocated, because the condition is too restrictive. Please remove some constraints and try again. Constraints applied are: - Differencing (Ephemeral) Disks - Networking Constraints (such as Accelerated Networking or IPv6) - VM Size" ## Cause 1: Limited zone availability in a SKU From cdf9f74cfa537f942aa9874ad5893f8f666bdb42 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Thu, 8 Jan 2026 15:41:12 -0800 Subject: [PATCH 4/9] improved format --- .../error-codes/zonalallocation-allocationfailed-error.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index dfc5021ba5c..5fecee7bc80 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -31,8 +31,6 @@ When you try to create, upgrade or scale up a cluster, you receive one of the fo > > Message="The VM allocation failed due to an internal error. Please retry later or try deploying to a different location. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details.This is not AKS controlled behavior, please ask help to VMSS team for allocation failure." - - > Code="OverconstrainedAllocationRequest" > > Message="Create or update VMSS failed. Allocation failed. VM(s) with the following constraints cannot be allocated, because the condition is too restrictive. Please remove some constraints and try again. Constraints applied are: - Differencing (Ephemeral) Disks - Networking Constraints (such as Accelerated Networking or IPv6) - VM Size" From c1c7cccfe1bcfe8d1d36cb2ff195a069ad94cb81 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Mon, 12 Jan 2026 11:46:25 -0800 Subject: [PATCH 5/9] updated links --- .../error-codes/zonalallocation-allocationfailed-error.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index 5fecee7bc80..83069ec4926 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -25,11 +25,11 @@ When you try to create, upgrade or scale up a cluster, you receive one of the fo > Code: Code="ZonalAllocationFailed" > -> Message="Allocation failed. We do not have sufficient capacity for the requested VM size in this zone. Read more about improving likelihood of allocation success at http://aka.ms/allocation-guidance. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details. This is not AKS controlled behavior, please ask help to VMSS team for allocation failure. If the error is due to capacity constrain, consider upgrade with maxUnavailable instead of maxSurge, details: aka.ms/aks/maxUnavailable." +> Message="Allocation failed. We do not have sufficient capacity for the requested VM size in this zone. Read more about improving likelihood of allocation success at https://aka.ms/allocation-guidance. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details. This is not AKS controlled behavior, please ask help to VMSS team for allocation failure. If the error is due to capacity constrain, consider upgrade with maxUnavailable instead of maxSurge, details: aka.ms/aks/maxUnavailable." > Code="AllocationFailed" > -> Message="The VM allocation failed due to an internal error. Please retry later or try deploying to a different location. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details.This is not AKS controlled behavior, please ask help to VMSS team for allocation failure." +> Message="The VM allocation failed due to an internal error. Please retry later or try deploying to a different location. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details.This is not AKS controlled behavior, please ask help to VMSS team for allocation failure." > Code="OverconstrainedAllocationRequest" > @@ -52,7 +52,7 @@ For more information about how to fix this error, see [Resolve errors for SKU no ## Solution 2: Dynamically scale using Node Auto Provisioning -[Node Auto Provisioning](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). +[Node Auto Provisioning](https://learn.microsoft.com/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). ## Solution 3: Upgrade in place using MaxUnavailable From 5e4615b0b6272125f6fa4b1351bac1524b508f21 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Mon, 12 Jan 2026 12:06:47 -0800 Subject: [PATCH 6/9] testing relativecurl --- .../error-codes/zonalallocation-allocationfailed-error.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index 83069ec4926..fa3f09a976c 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -52,7 +52,7 @@ For more information about how to fix this error, see [Resolve errors for SKU no ## Solution 2: Dynamically scale using Node Auto Provisioning -[Node Auto Provisioning](https://learn.microsoft.com/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). +[Node Auto Provisioning](/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). ## Solution 3: Upgrade in place using MaxUnavailable From aea16897ee0be9abfad455ead286dc96f0fc7f71 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Mon, 12 Jan 2026 12:11:09 -0800 Subject: [PATCH 7/9] undo --- .../error-codes/zonalallocation-allocationfailed-error.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index fa3f09a976c..83069ec4926 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -52,7 +52,7 @@ For more information about how to fix this error, see [Resolve errors for SKU no ## Solution 2: Dynamically scale using Node Auto Provisioning -[Node Auto Provisioning](/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). +[Node Auto Provisioning](https://learn.microsoft.com/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). ## Solution 3: Upgrade in place using MaxUnavailable From e1bf29315f9b69382465f8aca87241b50415bec3 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Tue, 13 Jan 2026 09:18:34 -0800 Subject: [PATCH 8/9] removed en-us --- .../error-codes/zonalallocation-allocationfailed-error.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index 83069ec4926..a8174604949 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -52,11 +52,11 @@ For more information about how to fix this error, see [Resolve errors for SKU no ## Solution 2: Dynamically scale using Node Auto Provisioning -[Node Auto Provisioning](https://learn.microsoft.com/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-aksnodeclass). +[Node Auto Provisioning](https://learn.microsoft.com/azure/aks/node-auto-provisioning) allows you to automatically provision VM SKUs based on your workload needs. If a SKU is not available due to capacity constraints, Node Auto Provisioning will select another SKU type based on the specifications provided in the customer resource definitions (CRDs) such as the NodePool and AKSNodeClass. This can be helpful for scaling scenarios when certain sku capacity becomes limited. For best practice on configuring your NAP cluster, see documentation on Node Auto Provisioning [NodePools](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass). ## Solution 3: Upgrade in place using MaxUnavailable -If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/en-us/azure/aks/upgrade-options#optimize-upgrades-to-improve-performance-and-minimize-disruptions) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. +If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/azure/aks/upgrade-options#optimize-upgrades-to-improve-performance-and-minimize-disruptions) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. ## Solution 4: Use Deployment Recommender in portal for new cluster creates From 9df825fa963c739b250fe7ae09c67f52aa488906 Mon Sep 17 00:00:00 2001 From: Annie Bubinski Date: Tue, 13 Jan 2026 09:21:04 -0800 Subject: [PATCH 9/9] updated maxunavailable link --- .../error-codes/zonalallocation-allocationfailed-error.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md index a8174604949..5e5d241e00b 100644 --- a/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md +++ b/support/azure/azure-kubernetes/error-codes/zonalallocation-allocationfailed-error.md @@ -56,7 +56,7 @@ For more information about how to fix this error, see [Resolve errors for SKU no ## Solution 3: Upgrade in place using MaxUnavailable -If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/azure/aks/upgrade-options#optimize-upgrades-to-improve-performance-and-minimize-disruptions) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. +If you don’t need surge node(s) during upgrades, leverage [MaxUnavailable](https://learn.microsoft.com/azure/aks/upgrade-aks-node-pools-rolling#customize-unavailable-nodes) to upgrade with the existing capacity. Set MaxUnavailable to a value greater than 0 and set MaxSurge equal to 0. Existing nodes will be cordoned and drained one at a time and pods will be evicted to remaining nodes. No buffer node will be created. ## Solution 4: Use Deployment Recommender in portal for new cluster creates