-
Notifications
You must be signed in to change notification settings - Fork 355
Revise blog on AKS capacity management strategies #5484
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Updated the blog post to enhance clarity and detail on Node Auto Provisioning and Virtual Machine Node Pools in AKS. Included new sections on capacity challenges, NAP features, and best practices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a new blog post about capacity management strategies in AKS, focusing on Node Auto Provisioning (NAP) and Virtual Machine node pools as solutions to capacity challenges during cluster scaling.
Key Changes
- Added comprehensive blog post covering capacity constraints and solutions in AKS
- Documented NAP features and how it handles capacity errors through intelligent VM SKU selection
- Explained Virtual Machine node pools with multi-SKU support for flexible capacity management
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Show resolved
Hide resolved
| - vm-node-pools | ||
| --- | ||
|
|
||
| <!-- truncate --> |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The <!-- truncate --> marker appears before any content. According to the blog post guidelines, the truncation marker should come after 2-3 introductory paragraphs that hook the reader and set context. Currently, line 11 has the marker immediately after the front matter with no introduction. Please add 2-3 paragraphs of introductory content before the truncate marker.
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Show resolved
Hide resolved
|
|
||
| :::info | ||
|
|
||
| Learn more in the official documentation: [Node Auto Provisioning](https://learn.microsoft.com/azure/aks/node-auto-provisioning) or [Virtual Machine Node Pool](https://learn.microsoft.com/azure/aks/virtual-machines-node-pools) |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The URLs include the locale /en-us/ which should be removed per the blog post guidelines. Use generic links without locale paths. Update to:
https://learn.microsoft.com/azure/aks/node-auto-provisioninghttps://learn.microsoft.com/azure/aks/virtual-machines-node-pools
|
|
||
| This flexibility is key to avoiding hard failures during scale-out. | ||
|
|
||
| ### Virtual Machine Node Pools: Flexibility at Scale |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the Microsoft Style Guide, use sentence-style capitalization for headings. "Virtual Machine Node Pools" should use lowercase after the first word. Update to: "### Virtual machine node pools: Flexibility at Scale"
| --- | ||
|
|
||
| ## The Hidden Complexity Behind Capacity | ||
| Why does this happen? Because scaling in Kubernetes isn’t just horizontal—it’s logistical. Every node pool is tied to a VM SKU, region, and zone. When workloads diversify—GPU jobs, memory-heavy analytics, latency-sensitive microservices—the rigid structure of fixed node pools becomes a bottleneck. You’re left juggling trade-offs: Do you overprovision expensive SKUs “just in case”? Or risk underprovisioning and throttling growth? AKS offers to solutions that aim to address these capacity scaling challenges. |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling error: "to solutions" should be "two solutions".
| Why does this happen? Because scaling in Kubernetes isn’t just horizontal—it’s logistical. Every node pool is tied to a VM SKU, region, and zone. When workloads diversify—GPU jobs, memory-heavy analytics, latency-sensitive microservices—the rigid structure of fixed node pools becomes a bottleneck. You’re left juggling trade-offs: Do you overprovision expensive SKUs “just in case”? Or risk underprovisioning and throttling growth? AKS offers to solutions that aim to address these capacity scaling challenges. | |
| Why does this happen? Because scaling in Kubernetes isn’t just horizontal—it’s logistical. Every node pool is tied to a VM SKU, region, and zone. When workloads diversify—GPU jobs, memory-heavy analytics, latency-sensitive microservices—the rigid structure of fixed node pools becomes a bottleneck. You’re left juggling trade-offs: Do you overprovision expensive SKUs “just in case”? Or risk underprovisioning and throttling growth? AKS offers two solutions that aim to address these capacity scaling challenges. |
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Show resolved
Hide resolved
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Outdated
Show resolved
Hide resolved
|
|
||
| This isn’t just flexibility - it’s versatility in capacity-constrained regions. | ||
|
|
||
| #### How Virtual Machine node pools handle capacity errors |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the Microsoft Style Guide, use sentence-style capitalization for headings. "How Virtual Machine node pools handle capacity errors" should have lowercase after the first word (except for proper nouns). Update to: "#### How virtual machine node pools handle capacity errors"
| * Avoid overly restrictive affinity rules. | ||
| * Enable multiple NodePools with different priorities for fallback. | ||
|
|
||
| ## What’s Next on the AKS Roadmap |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the Microsoft Style Guide, use sentence-style capitalization for headings. "What's Next on the AKS Roadmap" should have lowercase after the first word (except for proper nouns like AKS). Update to: "## What's next on the AKS roadmap"
Clarified error messages and improved explanations for capacity management. Enhanced guidance on node auto-provisioning and virtual machine node pools.
Updated formatting and improved clarity in the content regarding Node Auto Provisioning and Virtual Machine Node Pools. Added information on capacity management and best practices.
Corrected the link to the NAP documentation for enabling NAP on clusters.
Added guidance on enabling NAP and getting started with node auto provisioning and virtual machine node pools.
abubinski
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love this -- customers really need this. Thank you for creating!
abubinski
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a great doc, thanks for putting it together Wilson! Customers really need this.
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Outdated
Show resolved
Hide resolved
|
|
||
| To maximize NAP's ability to handle capacity errors: | ||
| * Define broad SKU families (e.g., D, E) in your NodePool requirements. | ||
| * Avoid overly restrictive affinity rules. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does seem to cause capacity issues, but I don't think we AKS have clear detail on what this means in our docs. Can we add info here?
| To maximize NAP's ability to handle capacity errors: | ||
| * Define broad SKU families (e.g., D, E) in your NodePool requirements. | ||
| * Avoid overly restrictive affinity rules. | ||
| * Enable multiple NodePools with different priorities for fallback. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think more detail would be helpful here too - what are the priority options and how should we do it? Maybe link to docs if it's already somewhere else.
Co-authored-by: Annie Bubinski <[email protected]>
Updated documentation for node auto-provisioning and virtual machine node pools, including links to relevant resources and clarifications on requirements and limitations.
Updated section title to include 'limitations' for clarity.
| --- | ||
|
|
||
| ## The Hidden Complexity Behind Capacity | ||
| Why does this happen? Because scaling in Kubernetes isn’t just horizontal—it’s logistical. Every node pool is tied to a VM SKU, region, and zone. When workloads diversify (GPU jobs, memory-heavy analytics, latency-sensitive microservices), the rigid structure of fixed node pools becomes a bottleneck. You’re left juggling trade-offs: Do you overprovision expensive SKUs “just in case”? Or risk underprovisioning and throttling growth? AKS offers two solutions that aim to address these capacity scaling challenges. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sounds a little too 🤖
|
|
||
| This flexibility is key to avoiding hard failures during scale-out. | ||
|
|
||
| FOr more on enabling NAP on your cluster, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning) as well as our docs on configuring the [NodePool CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| FOr more on enabling NAP on your cluster, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning) as well as our docs on configuring the [NodePool CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) | |
| For more on enabling NAP on your cluster, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning) as well as our docs on configuring the [NodePool CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) |
| Generally, using NAP or Virtual Machine node pools are mutually exclusive. You can use NAP to create standalone VMs which NAP manages instead of traditional node pools, which allows for **mixed SKU autoscaling**. Virtual Machine node pools uses traditional node pools, but allows for **mixed SKU manual scaling**. | ||
|
|
||
| * (Recommended) Choose NAP for dynamic environments where manual SKU planning is impractical. | ||
| * Choose Virtual Machine node pools when you need control—specific SKUs for compliance, predictable performance, or cost modeling. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't you select and control the specific SKUs in NAP as well?
|
|
||
| To maximize Virtual Machine node pool's ability to adapt to capacity errors: | ||
| * Be clear on a list of VM SKUs that can tolerate your workloads. Visit our [Azure VM Sizes documentation](https://learn.microsoft.com/azure/virtual-machines/sizes/overview#list-of-vm-size-families-by-type) for more details. | ||
| * Create mixed SKU node pools to offer resiliency to your workloads. Visit our [Virtual machine node pool documentation](https://learn.microsoft.com/azure/aks/virtual-machines-node-pools) on how to add a mixed SKU node pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * Create mixed SKU node pools to offer resiliency to your workloads. Visit our [Virtual machine node pool documentation](https://learn.microsoft.com/azure/aks/virtual-machines-node-pools) on how to add a mixed SKU node pool. | |
| * Create virtual machine node pools to offer resiliency to your workloads. Visit our [Virtual machine node pool documentation](https://learn.microsoft.com/azure/aks/virtual-machines-node-pools) on how to add a mixed SKU node pool. |
Also the sentence has too many repetitions.
| ### Create a new AKS cluster with virtual machine node pools | ||
|
|
||
| The following example creates a new cluster named myAKSCluster with a Virtual Machines node pool containing two nodes with size "Standard_D4s_v3", and sets the Kubernetes version to 1.31.0: | ||
|
|
||
| ``` | ||
| az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type "VirtualMachines" --vm-sizes "Standard_D4s_v3" | ||
| --node-count 2 --kubernetes-version 1.31.0 | ||
| ``` | ||
|
|
||
| ### Add a new virtual machine node pool to an existing cluster | ||
|
|
||
| The following example adds a Virtual Machines node pool named myvmpool to the myAKSCluster cluster. The node pool creates a ManualScaleProfile with --vm-sizes set to Standard_D4s_v3 and a --node-count of 3: | ||
|
|
||
| ``` | ||
| az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name myvmpool --vm-set-type "VirtualMachines" --vm-sizes "Standard_D4s_v3" --node-count 3 | ||
| ``` | ||
|
|
||
| ### Add another VM size in an existing node pool | ||
| You can add additional ManualSCaleProfiles to this existing node pool `myvmpool` to have multiple same-family sizes in the same node pool. The following example adds a manual scale profile to node pool myvmpool in cluster myAKSCluster. The node pool includes two nodes with a VM SKU of Standard_D2s_v3: | ||
|
|
||
| ``` | ||
| az aks nodepool manual-scale add --resource-group myResourceGroup --cluster-name myAKSCluster --name myvmpool --vm-sizes "Standard_D2s_v3" --node-count 2 | ||
| ``` | ||
| With this, the example node pool `myvmpool` now has two VM sizes in the same nodepool: | ||
| - "Standard_D4s_v3" (3 nodes) | ||
| - "Standard_D2s_v3" (2 nodes) | ||
|
|
||
| ### Update existing node pool size in a virtual machine node pool | ||
|
|
||
| You can also update the size and/or node count of existing node pools. The following example updates a manual scale profile in the `myvmpool` node pool in the `myAKSCluster` cluster. The command updates the number of nodes to five and changes the VM SKU from Standard_D4s_v3 to Standard_D8s_v3: | ||
|
|
||
| ``` | ||
| az aks nodepool manual-scale update --resource-group myResourceGroup --cluster-name myAKSCluster --name myvmpool --current-vm-sizes "Standard_D4s_v3" --vm-sizes "Standard_D8s_v3" --node-count 5 | ||
| ``` | ||
|
|
||
| For more on managing Virtual Machine node pools, visit our [Virtual Machine node pools documentation](https://learn.microsoft.com/azure/aks/virtual-machines-node-pools). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similarly, these are too much details and duplicate of the docs. I'd rather the examples here just cover the bare minimum of how to get started and link to docs for more information.
| ### NAP requirements + limitations | ||
|
|
||
| To use node auto-provisioning in AKS, you need the following prerequisites: | ||
|
|
||
| - An Azure subscription. If you don't have one, you can create a free account. | ||
| - Azure CLI version 2.76.0 or later. To find the version, run az --version. For more information about installing or upgrading the Azure CLI, see Install Azure CLI. | ||
|
|
||
| The following limitations and unsupported features apply to node auto-provisioning in AKS: | ||
|
|
||
| - You can't enable NAP on clusters enabled with the cluster autoscaler. | ||
| - Windows node pools aren't supported. | ||
| - IPv6 clusters aren't supported. | ||
| - Service principals aren't supported. You can use either a system-assigned or user-assigned managed identity. | ||
| - Disk Encryption Sets aren't supported yet (scheduled for early 2026). | ||
| - Custom certificate authority (CA) certificates aren't supported. | ||
| - You can't stop a cluster enabled with NAP yet. | ||
| - HTTP proxy isn't supported. | ||
| - You can't change the cluster egress outbound type after you create a cluster enabled with NAP. | ||
| - When creating a NAP cluster in a custom virtual network (VNet), you must use a Standard Load Balancer. The Basic Load Balancer isn't supported. | ||
|
|
||
| For more on NAP limitations, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning#limitations-and-unsupported-features). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we not have this here? Blog posts are fairly static and we'll forget to update them when the limitations are gone.
| ### Virtual machine node pool requirements + limitations | ||
|
|
||
| - [InifiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. | ||
| - [Node pool snapshot](https://learn.microsoft.com/azure/aks/node-pool-snapshot) isn't supported. | ||
| - All VM sizes selected in a node pool need to be from a similar virtual machine family. For example, you can't mix an N-Series virtual machine type with a D-Series virtual machine type in the same node pool. | ||
| - Virtual Machines node pools allow up to five different virtual machine sizes per node pool. | ||
| - An Azure subscription. If you don't have one, you can [create a free account](https://azure.microsoft.com/free). | ||
| - Azure CLI version 2.73.0 or later installed and configured. To find the version, run `az --version`. | ||
| - This feature requires kubernetes version 1.27 or greater. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar comment, let's not list limitations in a static blog post.
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Show resolved
Hide resolved
| ## What’s next on the AKS roadmap | ||
|
|
||
| NAP: Expect deeper integration with cost optimization tools and advanced disruption policies for even smarter consolidation. | ||
| Virtual Machine node pools: Auto-scaling (general availability) is on the horizon, reducing manual configuration and enabling adaptive scaling across mixed SKUs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did we mention that VM node pools actually support auto-scaling (in preview) in this blog post?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 12 comments.
|
|
||
| This flexibility is key to avoiding hard failures during scale-out. | ||
|
|
||
| FOr more on enabling NAP on your cluster, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning) as well as our docs on configuring the [NodePool CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected capitalization of 'FOr' to 'For'.
| FOr more on enabling NAP on your cluster, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning) as well as our docs on configuring the [NodePool CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) | |
| For more on enabling NAP on your cluster, visit our [NAP documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning) as well as our docs on configuring the [NodePool CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [AKSNodeClass CRD](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) |
| To maximize NAP's ability to handle capacity errors: | ||
| * Define broad SKU families (e.g., D, E) in your NodePool requirements. | ||
| * Avoid overly restrictive affinity rules. Visit our [affinity rules documentation](https://learn.microsoft.com/azure/aks/operator-best-practices-advanced-scheduler#control-pod-scheduling-using-node-selectors-and-affinity) on best practices. | ||
| * Enable multiple NodePools with different priorities for fallback. Visist our [NAP Node Pool documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) for more on configuring the NodePool CRD. |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected spelling of 'Visist' to 'Visit'.
| * Enable multiple NodePools with different priorities for fallback. Visist our [NAP Node Pool documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) for more on configuring the NodePool CRD. | |
| * Enable multiple NodePools with different priorities for fallback. Visit our [NAP Node Pool documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) for more on configuring the NodePool CRD. |
| - NodePool - for setting rules around the range of VM sizes, capacity type (spot vs. on-demand), compute architecture, availability zones, etc. | ||
| - AKSNodeClass - for setting rules around certain Azure specific settings such as more detailed networking (virtual networks) setup, node image family type, operating system configurations, and other resource-related definitions. | ||
|
|
||
| Visit our [NAP NodePool Documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [NAP AKSNodeClass documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) for more on configuration these files. |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected 'configuration these files' to 'configuring these files'.
| Visit our [NAP NodePool Documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [NAP AKSNodeClass documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) for more on configuration these files. | |
| Visit our [NAP NodePool Documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [NAP AKSNodeClass documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) for more on configuring these files. |
|
|
||
| ### Virtual machine node pool requirements + limitations | ||
|
|
||
| - [InifiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected spelling of 'InifiniBand' to 'InfiniBand'.
| - [InifiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. | |
| - [InfiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. |
| ``` | ||
|
|
||
| ### Add another VM size in an existing node pool | ||
| You can add additional ManualSCaleProfiles to this existing node pool `myvmpool` to have multiple same-family sizes in the same node pool. The following example adds a manual scale profile to node pool myvmpool in cluster myAKSCluster. The node pool includes two nodes with a VM SKU of Standard_D2s_v3: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected capitalization in 'ManualSCaleProfiles' to 'ManualScaleProfiles'.
| You can add additional ManualSCaleProfiles to this existing node pool `myvmpool` to have multiple same-family sizes in the same node pool. The following example adds a manual scale profile to node pool myvmpool in cluster myAKSCluster. The node pool includes two nodes with a VM SKU of Standard_D2s_v3: | |
| You can add additional ManualScaleProfiles to this existing node pool `myvmpool` to have multiple same-family sizes in the same node pool. The following example adds a manual scale profile to node pool myvmpool in cluster myAKSCluster. The node pool includes two nodes with a VM SKU of Standard_D2s_v3: |
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Show resolved
Hide resolved
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Show resolved
Hide resolved
|
|
||
| ### Add another VM size in an existing node pool | ||
| You can add additional ManualSCaleProfiles to this existing node pool `myvmpool` to have multiple same-family sizes in the same node pool. The following example adds a manual scale profile to node pool myvmpool in cluster myAKSCluster. The node pool includes two nodes with a VM SKU of Standard_D2s_v3: | ||
|
|
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code blocks must specify a language identifier for syntax highlighting. Add 'bash' or 'sh' after the opening triple backticks.
| ### Update existing node pool size in a virtual machine node pool | ||
|
|
||
| You can also update the size and/or node count of existing node pools. The following example updates a manual scale profile in the `myvmpool` node pool in the `myAKSCluster` cluster. The command updates the number of nodes to five and changes the VM SKU from Standard_D4s_v3 to Standard_D8s_v3: | ||
|
|
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code blocks must specify a language identifier for syntax highlighting. Add 'bash' or 'sh' after the opening triple backticks.
|
|
||
| To use node auto-provisioning in AKS, you need the following prerequisites: | ||
|
|
||
| - An Azure subscription. If you don't have one, you can create a free account. |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This bullet point references creating a free account but doesn't provide a link. Consider adding the URL (https://azure.microsoft.com/free) for consistency, as this link is provided in line 156 for the same statement.
| - An Azure subscription. If you don't have one, you can create a free account. | |
| - An Azure subscription. If you don't have one, you can [create a free account](https://azure.microsoft.com/free). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
|
|
||
| Visit our [NAP NodePool Documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-node-pools) and [NAP AKSNodeClass documentation](https://learn.microsoft.com/azure/aks/node-auto-provisioning-aksnodeclass) for more on configuration these files. | ||
|
|
||
| ### Configure NAP Disruption |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent capitalization: 'Disruption' should be lowercase to match the style of other subsection headings in this document (e.g., 'Configure NAP custom resource definitions').
| ### Configure NAP Disruption | |
| ### Configure NAP disruption |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 9 comments.
| ``` | ||
| az aks create --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto --network-plugin azure --network-plugin-mode overlay --network-dataplane cilium | ||
| ``` |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing language specification in code block. According to the blog post guidelines, all code blocks must specify the language for syntax highlighting. Add "bash" after the opening backticks.
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Outdated
Show resolved
Hide resolved
| ``` | ||
| az aks nodepool manual-scale add --resource-group myResourceGroup --cluster-name myAKSCluster --name myvmpool --vm-sizes "Standard_D2s_v3" --node-count 2 | ||
| ``` |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing language specification in code block. According to the blog post guidelines, all code blocks must specify the language for syntax highlighting. Add "bash" after the opening backticks.
| --- | ||
| title: "Navigating Capacity Challenges on AKS with Node Auto Provisioning or Virtual Machine Node Pools" | ||
| description: "Learn how Node auto provisioning and Virtual Machine node pools can address capacity constraints when scaling an AKS cluster" | ||
| date: 2025-11-26 |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The date field is set to 2025-11-26, which is in the past relative to the blog post directory name (2025-12-06). According to the AKS Blog Post Content Guidelines, the date can be future-dated for future publishing, but there should be consistency between the directory name date and the front matter date. Consider updating the date to match the directory name (2025-12-06) or vice versa to maintain consistency.
| date: 2025-11-26 | |
| date: 2025-12-06 |
| ``` | ||
| az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto | ||
| ``` |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing language specification in code block. According to the blog post guidelines, all code blocks must specify the language for syntax highlighting. Add "bash" after the opening backticks.
| ``` | ||
| az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type "VirtualMachines" --vm-sizes "Standard_D4s_v3" | ||
| --node-count 2 --kubernetes-version 1.31.0 | ||
| ``` |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing language specification in code block. According to the blog post guidelines, all code blocks must specify the language for syntax highlighting. Add "bash" after the opening backticks.
website/blog/2025-12-06-node-auto-provisioning-capacity-management/index.md
Outdated
Show resolved
Hide resolved
|
|
||
| ### Virtual machine node pool requirements + limitations | ||
|
|
||
| - [InifiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling error: "InifiniBand" should be "InfiniBand" with proper capitalization. The correct spelling has a capital "B" in "Band".
| - [InifiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. | |
| - [InfiniBand](https://blog.aks.azure.com/2025/04/11/infiniband-on-aks) isn't available. |
| ``` | ||
| az aks nodepool manual-scale update --resource-group myResourceGroup --cluster-name myAKSCluster --name myvmpool --current-vm-sizes "Standard_D4s_v3" --vm-sizes "Standard_D8s_v3" --node-count 5 | ||
| ``` |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing language specification in code block. According to the blog post guidelines, all code blocks must specify the language for syntax highlighting. Add "bash" after the opening backticks.
Updated the language for clarity and specificity regarding VM SKUs and capacity management in Kubernetes.
Co-authored-by: Ahmed Sabbour <[email protected]> Co-authored-by: Copilot <[email protected]>
…ment/index.md Co-authored-by: Copilot <[email protected]>
…ment/index.md Co-authored-by: Copilot <[email protected]>
Updated content for clarity and added links to documentation.
Typo cleanup
Updated the blog post to resolve format issues (title spacing, list syntax)
Updated the blog post to enhance clarity and detail on Node Auto Provisioning and Virtual Machine Node Pools in AKS. Included new sections on capacity challenges, NAP features, and best practices.