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) 入門ガイド|アーキテクチャ・Networking・Ingress・セキュリティ完全解説【2026 年版】
Azure Kubernetes Service (AKS) の入門ガイド。Control Plane と Node Pool の構造、Azure CNI Overlay vs Kubenet の選定、Application Gateway / NGINX Ingress 選定、Workload Identity (新方式)、Private Cluster・Microsoft Defender for Containers・Azure Policy のセキュリティ、関連認定試験 (AZ-104 / AZ-204 / AZ-400 / CKA) を日本語で網羅。
Azure Spot VM 詳細ガイド|Eviction Policy・Max Price・Placement Score・AKS Spot Node Pool【2026 年版】
Azure Spot VM の詳細ガイド。Eviction Policy (Deallocate / Delete) 選択・Max Price 戦略・Spot Placement Score・制約・AKS Spot Node Pool 構成・コスト効果・運用ベストプラクティス・関連認定試験 (AZ-104 / AZ-305 / AZ-400) を日本語で網羅。最大 90% コスト削減の実装パターン。
Azure DevOps エンジニア キャリアロードマップ|AZ-104 → AZ-400 → SC-100 シニア DevOps への道【2026 年版】
Azure DevOps Engineer になるための認定取得ロードマップ完全版。AZ-900 → AZ-104 → AZ-400 の王道ルート、GitHub と Azure DevOps の両方を扱う AZ-400 の構成、Kubernetes 認定 (CKA / CKAD / CKS) との二刀流、IaC (Bicep / Terraform) 戦略、年収レンジまで日本語で網羅。
Azure Managed Identity vs Service Principal 完全比較|認証パターンの選定と実装ベストプラクティス【2026 年版】
Azure の認証エンティティ Managed Identity と Service Principal を完全比較。System-assigned / User-assigned の使い分け、Client Secret vs Certificate vs Workload Identity Federation の選定、AKS Workload Identity、Azure サービス対応状況、関連認定試験 (SC-300 / AZ-204 / AZ-400) を日本語で網羅。実装パターン集付き。
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...