An AKS Node Pool is a group of identically configured worker nodes. By running multiple node pools in a single AKS cluster, you can optimize each pool for a specific purpose. Node pool design has a major impact on AKS operational efficiency, cost, and performance. This article walks through System / User / Spot / GPU / Windows node pools, Cluster Autoscaler vs NAP, and operational best practices.
| Item | System Node Pool | User Node Pool |
|---|---|---|
| Purpose | kube-system namespace pods | Application pods |
| Taint | CriticalAddonsOnly=true:NoSchedule | Customizable |
| Required | Yes (at least 1) | Optional (multiple allowed) |
| OS | Linux only | Linux / Windows |
| Min nodes (production) | 3 (AZ-redundant) | Depends on use case |
| Recommended VM size | D2s_v5 / D4s_v5 or higher | D / E / N series |
The standard pattern for new AKS clusters is one System pool (D4s_v5 × 3 nodes, AZ-redundant) plus multiple User pools.
Spot Node Pools use Azure Spot VMs as nodes, cutting costs by up to 90%.
kubernetes.azure.com/scalesetpriority=spot:NoSchedulekubernetes.azure.com/scalesetpriority=spot to intentionally schedule onto SpotNever use Spot for stateful production workloads (databases, caches). Only stateless, eviction-tolerant workloads belong here.
| Item | Cluster Autoscaler | Node Auto Provisioning (NAP, 2024 GA) |
|---|---|---|
| Category | AKS standard feature | New, Karpenter-based |
| Behavior | Detect Pending pods → launch nodes | Dynamically picks optimal VM size from pod requirements |
| Scale latency | ~10 minutes | 1-2 minutes |
| Node pool management | Must be pre-defined | Not required (dynamic) |
| Cost efficiency | Standard | More optimized |
| Recommendation | Existing operations | New clusters / efficiency-focused |
NAP is becoming the default choice for new AKS clusters, but since it's still a new feature, Cluster Autoscaler knowledge remains important.
Node pool for machine learning, graphics processing, and LLM training. Uses Azure N-series VMs.
nvidia.com/gpu: 1ND H100 v5 (H100 80GB GPUs, latest generation) easily runs into the millions to tens of millions of yen per month, and a quota request is often required — plan capacity ahead of time.
AKS supports Windows Node Pools alongside Linux ones (the System Node Pool must always be Linux).
kubernetes.io/os=windowsThis feature shines for legacy Windows app containerization projects, but for new projects the standard best practice is to containerize on Linux.
| Node Pool | VM size | Min | Max | Purpose |
|---|---|---|---|---|
| System | D4s_v5 | 3 | 5 | kube-system pods |
| User (Regular) | D4s_v5 | 3 | 10 | Production Web/API |
| User (Spot) | D4s_v5 Spot | 0 | 20 | Batch workers |
| GPU | NCsv3 | 0 | 5 | ML inference / training (as needed) |
| Memory Optimized | E16s_v5 | 0 | 5 | In-memory cache (as needed) |
A mechanism to control app pod scheduling at the node pool level.
tolerations:
- key: "workload"
operator: "Equal"
value: "batch"
effect: "NoSchedule"
nodeSelector:
workload: batchWhat is an AKS Node Pool?
An AKS Node Pool is a group of identically configured worker nodes (Linux or Windows VMs). A single AKS cluster typically hosts multiple node pools, separated by purpose (System, User, GPU, Spot). The System Node Pool is mandatory and runs kube-system namespace pods (CoreDNS, konnectivity, metrics-server, etc.), while User Node Pools run application pods. Each node pool can be configured independently for VM size, OS, autoscaling, taints, and labels, and pod placement is controlled via Node Affinity / Tolerations. In enterprise AKS, node pool design has a major impact on operational efficiency, cost, and performance.
What is the difference between System and User Node Pools?
System Node Pool: runs kube-system pods (CoreDNS, konnectivity, metrics-server, azure-cni-pod, etc.) and handles AKS management functions. Taint: CriticalAddonsOnly=true:NoSchedule (excludes app pods). Minimum 1 node (3 recommended in production for AZ redundancy). Use Standard VMs (D2s_v5 or higher) rather than Burstable (B2s_v3). User Node Pool: runs application pods with customizable taints, can be created multiple times by purpose (Spot, GPU, Memory-optimized), scales via Cluster Autoscaler, and now supports Auto Provisioning (Karpenter equivalent). The standard pattern for new AKS clusters is one System pool (D4s_v5 × 3 nodes, AZ-redundant) plus multiple User pools.
How should I use Spot Node Pools?
Spot Node Pools use Azure Spot VMs as nodes, cutting costs by up to 90%. Design considerations: 1) Spot nodes can be evicted at any time — pods need a Toleration for 'kubernetes.azure.com/scalesetpriority=spot:NoSchedule'; 2) intentionally schedule onto Spot via Node Selector or Node Affinity on 'kubernetes.azure.com/scalesetpriority=spot'; 3) use Delete as the Eviction Policy (not Deallocate); 4) optionally allow Max Price up to the pay-as-you-go rate to reduce eviction frequency. Use cases: batch processing pods (CronJob), stateless workers, ephemeral CI/CD pods. Never use Spot for stateful production workloads (databases, caches) — only stateless, eviction-tolerant workloads belong here.
What is the difference between Cluster Autoscaler and Karpenter?
Cluster Autoscaler (CA): the standard AKS node autoscaler. It detects Pending pods (those that can't be scheduled due to resource shortage) → launches new nodes → schedules the pods, and removes idle nodes. Enabled per node pool with Min/Max node counts. Typical scale-up latency is around 10 minutes. Node Auto Provisioning (NAP, Karpenter-based, GA in 2024): dynamically picks the optimal VM size from pod requirements (CPU/Memory/Affinity) and creates nodes — faster (1–2 min), more efficient, and more cost-optimized. Multiple node pool management is no longer needed. Microsoft adapted the AWS Karpenter project codebase for Azure, and NAP is becoming the default choice for new AKS clusters. That said, NAP is still new, so Cluster Autoscaler knowledge remains important.
How do I configure a GPU Node Pool?
GPU Node Pools are used for machine learning, graphics processing, and crypto mining (only if your organization permits it). They use Azure N-series VMs (NCv3, NDv4, ND H100 v5, etc.) as nodes. Microsoft's recommended pattern: 1) install the NVIDIA Device Plugin (the Azure GPU Operator is also an option); 2) request GPUs on pods via resources.limits with nvidia.com/gpu: 1; 3) explicitly schedule onto the GPU pool via Node Selector; 4) use a Spot GPU pool for cost optimization (great for ML training). NDv5 (H100 80GB GPUs, latest generation) is extremely powerful for LLM training and can easily run into millions of yen per month. A quota request is often required, so plan capacity ahead of time.
Can I use Windows Node Pools?
AKS supports Windows Node Pools alongside Linux ones (the System Node Pool must always be Linux). Workers run on Windows Server 2019 / 2022 and let you containerize .NET Framework apps and MSI-based legacy applications. Caveats: 1) Windows container images are much larger than Linux (several GB), so pull times are longer; 2) pod startup is also slower than Linux; 3) Windows and Linux must be in separate node pools (no mixing); 4) target via Pod Node Selector kubernetes.io/os=windows. This feature shines for legacy Windows app containerization projects, but for new projects the standard best practice is to containerize on Linux.
What are the best practices for Node Pool design?
Standard pattern for production AKS: 1) one System Node Pool (D4s_v5 × 3 nodes, AZ-redundant, CriticalAddonsOnly taint); 2) User Node Pool (Regular): D4s_v5 × 3 nodes, autoscale Min 3 / Max 10, for production Web/API; 3) User Node Pool (Spot): D4s_v5 Spot, autoscale Min 0 / Max 20, for batch workers; 4) GPU Node Pool (when needed): NCsv3-series, autoscale Min 0 / Max 5; 5) Memory-Optimized Node Pool (when needed): E-series for in-memory cache. Roll upgrades pool by pool so the cluster as a whole has zero downtime. Combining AZ placement, Pod Disruption Budgets, and Cluster Autoscaler / NAP delivers both cost optimization and high availability.
What are the related certifications?
AZ-104 (Administrator) covers AKS basics in Domain 3; AZ-204 (Developer Associate, note the July 2026 retirement) covers AKS deployment from a developer perspective; AZ-400 (DevOps Engineer Expert) covers AKS deployment from CI/CD pipelines and GitOps (Argo CD / FluxCD); AZ-305 (Solutions Architect Expert) covers architectural decisions; SC-100 (Cybersecurity Architect Expert) covers AKS security. Outside Microsoft: combining CKA (Certified Kubernetes Administrator), CKAD (Application Developer), and CKS (Security) is a powerful pairing for DevOps engineers. AKS is a core technology on the Azure DevOps engineer career roadmap.
Related Articles & Technical Deep Dives
Azure Kubernetes Service (AKS) for Beginners (2026)
AKS basics — cluster creation, node pools, networking, identity. The on-ramp for Azure K8s.
Azure Spot VM Detailed Guide (2026)
Spot VM mechanics — eviction policy, max price, common batch and dev workload patterns.
Azure DevOps Career Roadmap: AZ-204 + AZ-400 (2026)
DevOps career path on Azure — dev skills, pipeline engineering, salary and role progression.
Managed Identity vs Service Principal: When to Use Which (2026)
Compare managed identity and service principal — auth flow, rotation, common use cases.
Technical information in this article is based on the Azure Kubernetes Service Documentation. This article is not an official Microsoft Corporation product and has no affiliation or sponsorship. Microsoft and Azure are trademarks of the Microsoft group of companies. Kubernetes is a registered trademark of the Linux Foundation. Information is based on official public materials as of May 24, 2026. Always check the official pages for the latest information.
Practice with certification-focused question sets
View Azure exam prepNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
AZ-900 Azure Fundamentals: Complete Exam Guide (2026)
Pass AZ-900 — cloud concepts, Azure architecture, management...
Azure Certification Roadmap: Which Cert to Take Next (2026)
Choose your Azure certification path — Fundamentals, Associa...
AI-901 Azure AI Fundamentals (Beta): Complete Guide (2026)
Pass AI-901 — Microsoft Foundry, generative AI, responsible ...
Microsoft Entra ID Fundamentals for Azure Certs (2026)
Entra ID basics every cert candidate needs — tenants, identi...
DP-900 Azure Data Fundamentals: Complete Guide (2026)
Pass DP-900 — relational, non-relational, analytics, Power B...