diff --git a/cluster-autoscaler/estimator/binpacking_estimator.go b/cluster-autoscaler/estimator/binpacking_estimator.go index eb19aed304e4c7d716c5fd5715e6bf8848a1cbe3..10ed1dfa3d635f3e3ccfae03d77d10bfdcba8f3f 100644 --- a/cluster-autoscaler/estimator/binpacking_estimator.go +++ b/cluster-autoscaler/estimator/binpacking_estimator.go @@ -190,7 +190,7 @@ func (e *BinpackingNodeEstimator) tryToScheduleOnNewNodes( // If the pod can't be scheduled on the last node because of topology constraints, we can stop binpacking. // The pod can't be scheduled on any new node either, because it has the same topology constraints. nodeName, err := e.clusterSnapshot.SchedulePodOnAnyNodeMatching(pod, func(nodeInfo *framework.NodeInfo) bool { - return true // Node scale-up can cause old nodes to become schedulable, so we check all nodes. + return nodeInfo.Node().Name != estimationState.lastNodeName // only skip the last node that failed scheduling }) if err != nil && err.Type() == clustersnapshot.SchedulingInternalError { // Unexpected error.