Cluster-autoscaler: skip scale down if schedulable but not scheduled pods are present
This commit is contained in:
parent
910e04addd
commit
956e20c33f
|
|
@ -143,8 +143,14 @@ func main() {
|
||||||
//
|
//
|
||||||
// Without below check cluster might be unnecessary scaled up to the max allowed size
|
// Without below check cluster might be unnecessary scaled up to the max allowed size
|
||||||
// in the describe situation.
|
// in the describe situation.
|
||||||
|
schedulablePodsPresent := false
|
||||||
if *verifyUnschedulablePods {
|
if *verifyUnschedulablePods {
|
||||||
unschedulablePodsToHelp = FilterOutSchedulable(unschedulablePodsToHelp, nodes, allScheduled, predicateChecker)
|
newUnschedulablePodsToHelp := FilterOutSchedulable(unschedulablePodsToHelp, nodes, allScheduled, predicateChecker)
|
||||||
|
|
||||||
|
if len(newUnschedulablePodsToHelp) != len(unschedulablePodsToHelp) {
|
||||||
|
schedulablePodsPresent = true
|
||||||
|
}
|
||||||
|
unschedulablePodsToHelp = newUnschedulablePodsToHelp
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(unschedulablePodsToHelp) == 0 {
|
if len(unschedulablePodsToHelp) == 0 {
|
||||||
|
|
@ -166,7 +172,8 @@ func main() {
|
||||||
if *scaleDownEnabled {
|
if *scaleDownEnabled {
|
||||||
// In dry run only utilization is updated
|
// In dry run only utilization is updated
|
||||||
calculateUtilizationOnly := lastScaleUpTime.Add(*scaleDownDelay).After(time.Now()) ||
|
calculateUtilizationOnly := lastScaleUpTime.Add(*scaleDownDelay).After(time.Now()) ||
|
||||||
lastScaleDownFailedTrial.Add(*scaleDownTrialFrequency).After(time.Now())
|
lastScaleDownFailedTrial.Add(*scaleDownTrialFrequency).After(time.Now()) ||
|
||||||
|
schedulablePodsPresent
|
||||||
|
|
||||||
underutilizedNodes = CalculateUnderutilizedNodes(
|
underutilizedNodes = CalculateUnderutilizedNodes(
|
||||||
nodes,
|
nodes,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue