Calculate how many nodes the Cluster Autoscaler will add or remove under load.
When pods can't be scheduled due to insufficient cluster capacity, the Cluster Autoscaler estimates how many nodes to add: nodes_needed = ceil(pending_pods × pod_request ÷ (node_capacity × scale_up_threshold)). The scale-up threshold leaves intentional headroom on new nodes rather than packing them to exactly 100%, reducing the chance of an immediate second scale-up event.
nodesNeeded = ceil(pendingPods × podRequest / (nodeCapacity × scaleUpThreshold%))
Packing nodes to exactly 100% at scale-up time leaves no room for pod overhead, DaemonSets, or slight scheduling variance, which can trigger another scale-up almost immediately — a lower threshold avoids this churn.
Use a weighted average request size across all pending pods, or run this calculation separately for each distinct pod resource profile / node group combination for more accuracy.
No — scale-down uses a longer evaluation window (default 10 minutes of low utilization) and respects pod disruption budgets, so scale-down is intentionally more conservative than scale-up.
Larger instance types raise node_capacity, reducing nodes_needed but increasing the 'blast radius' if a single node fails — there's a tradeoff between bin-packing efficiency and fault isolation.