Description
Which component are you using?:
/area cluster-autoscaler
Is your feature request designed to solve a problem? If so describe the problem this feature should solve.:
I am not sure whether this is an existing feature already, or that if there is an existing issue.
When a (larger) node is considered for scale down due to the utilization threshold, if there is another node pool of smaller VM size, which could be scaled up to take its workload and the result would be less waste, it should scale up the smaller node pool and then relocate the workload to the smaller node and then scale down the larger node.
Describe the solution you'd like.:
Let's say I have two similar node pools, node pools large and small The only difference being the node size. Both node pools have min 0 nodes.
A long running workload X has been scheduled and deployed to a large node. However, its utilization level is less than the utilization threshold.
Now currently, it seems like, that if there is an existing small node which could take in the workload X, the cluster autoscaler would relocate the workload X to that existing small node and then scale down the large node.
But if there isnt an existing small node, it would not relocate nor scale down the large node. Obviously.
What I would like it to do in case there wasnt an existing node, is that it would be intelligent enough to scale up the small node and then relocate the workload X to that small node and then scale down the large node.
Describe any alternative solutions you've considered.:
Additional context.: