@@ -294,6 +294,10 @@ func findPlaceFor(removedNode string, pods []*apiv1.Pod, nodes map[string]bool,
294
294
return fmt .Sprintf ("%s/%s" , pod .Namespace , pod .Name )
295
295
}
296
296
297
+ isCandidateNode := func (nodeName string ) bool {
298
+ return nodeName != removedNode && nodes [nodeName ]
299
+ }
300
+
297
301
pods = tpu .ClearTPURequests (pods )
298
302
299
303
// remove pods from clusterSnapshot first
@@ -314,7 +318,7 @@ func findPlaceFor(removedNode string, pods []*apiv1.Pod, nodes map[string]bool,
314
318
315
319
klog .V (5 ).Infof ("Looking for place for %s/%s" , pod .Namespace , pod .Name )
316
320
317
- if hintedNode , hasHint := oldHints [podKey (pod )]; hasHint && hintedNode != removedNode {
321
+ if hintedNode , hasHint := oldHints [podKey (pod )]; hasHint && isCandidateNode ( hintedNode ) {
318
322
if err := predicateChecker .CheckPredicates (clusterSnapshot , pod , hintedNode ); err == nil {
319
323
klog .V (4 ).Infof ("Pod %s/%s can be moved to %s" , pod .Namespace , pod .Name , hintedNode )
320
324
if err := clusterSnapshot .AddPod (pod , hintedNode ); err != nil {
@@ -328,7 +332,7 @@ func findPlaceFor(removedNode string, pods []*apiv1.Pod, nodes map[string]bool,
328
332
329
333
if ! foundPlace {
330
334
newNodeName , err := predicateChecker .FitsAnyNodeMatching (clusterSnapshot , pod , func (nodeInfo * schedulerframework.NodeInfo ) bool {
331
- return nodeInfo .Node ().Name != removedNode
335
+ return isCandidateNode ( nodeInfo .Node ().Name )
332
336
})
333
337
if err == nil {
334
338
klog .V (4 ).Infof ("Pod %s/%s can be moved to %s" , pod .Namespace , pod .Name , newNodeName )
0 commit comments