Managing disruption with AKS Node Auto-Provisioning
Azure Kubernetes Service (AKS) Node Auto-Provisioning (NAP) keeps your clusters efficient: it provisions nodes for pending pods, and it continuously removes nodes when it's safe to do so, for example, when nodes are empty or underutilized. That node-removal disruption is where many production surprises happen.
When you manage Kubernetes, a few disruption questions come up fast:
- How do I control when scale down happens, or when it should not happen?
- How do I make workload disruption predictable?
- Why won’t NAP scale down my nodes, even with lots of underused capacity?
- Why do upgrades get stuck on certain nodes?
This post focuses on NAP disruption best practices, not workload scheduling tools such as topology spread constraints, node affinity, and taints. For scheduling best practices, see the NAP scheduling fundamentals blog post.
If you’re new to these features, start here. If you already use NAP disruption settings, use this post as a checklist for the behaviors AKS users most commonly ask about.
