Skip to main content
Finished Jobs don’t block scale-down. Their Pods are in the Succeeded or Failed phase, and both the CKS idle check (CWActive) and the Cluster Autoscaler ignore Pods in those phases. If a Node Pool won’t scale down, the most common reason is a Pod on the Node that’s still Running or Pending. The usual causes are a Job Pod that never exited, a Pod in CrashLoopBackOff, or a Deployment, StatefulSet, or CronJob Pod you overlooked. DaemonSet Pods, control-plane Pods, Pods labeled interruptible, and Pods whose deletion grace period has already elapsed are excluded. To find the Pods keeping a Node active, replace [NODE-NAME] with the name of the Node and list the unfinished Pods on it:
Any Pod in the output that isn’t a DaemonSet Pod, a control-plane Pod, or a Pod labeled interruptible keeps the Node active. To unblock scale-down, delete or finish those Pods. To stop a stalled Job from holding a Node indefinitely, set activeDeadlineSeconds on the Job so Kubernetes terminates its Pods after the deadline. Setting ttlSecondsAfterFinished removes finished Jobs and their Pods from the cluster, which keeps the Pod list tidy but doesn’t change scale-down eligibility, because finished Pods are already ignored. For more information, see Idle Nodes and Current is above target.
Nodes Workload Scheduling
Last modified on September 2, 2026