Cluster Autoscaler iterates every 10 seconds (configurable through the --scan-interval flag). If the conditions for scaling up are not met, it checks whether there are unneeded nodes.
It will consider a node eligible for removal when all of the following conditions are met.
- The sum of CPU and memory requests of all Pods running on a node is less than 50% of the node's allocatable resources (configurable through the --scale-down-utilization-threshold flag).
- All Pods running on the node can be moved to other nodes. The exceptions are those that run on all the nodes like those created through DaemonSets.
Whether a Pod might not be eligible for rescheduling to a different node when one of the following conditions are met.
- A Pod with affinity or anti-affinity rules that tie it to a specific node.
- A Pod that uses local storage.
- A Pod created...