diff --git a/pkg/scheduler/framework/plugins/interpodaffinity/scoring.go b/pkg/scheduler/framework/plugins/interpodaffinity/scoring.go index c27ae5f41ef..06fee90b98b 100644 --- a/pkg/scheduler/framework/plugins/interpodaffinity/scoring.go +++ b/pkg/scheduler/framework/plugins/interpodaffinity/scoring.go @@ -141,14 +141,14 @@ func (pl *InterPodAffinity) PreScore( } affinity := pod.Spec.Affinity - hasAffinityConstraints := affinity != nil && affinity.PodAffinity != nil - hasAntiAffinityConstraints := affinity != nil && affinity.PodAntiAffinity != nil + hasPreferredAffinityConstraints := affinity != nil && affinity.PodAffinity != nil && len(affinity.PodAffinity.PreferredDuringSchedulingIgnoredDuringExecution) > 0 + hasPreferredAntiAffinityConstraints := affinity != nil && affinity.PodAntiAffinity != nil && len(affinity.PodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution) > 0 - // Unless the pod being scheduled has affinity terms, we only + // Unless the pod being scheduled has preferred affinity terms, we only // need to process nodes hosting pods with affinity. var allNodes []*framework.NodeInfo var err error - if hasAffinityConstraints || hasAntiAffinityConstraints { + if hasPreferredAffinityConstraints || hasPreferredAntiAffinityConstraints { allNodes, err = pl.sharedLister.NodeInfos().List() if err != nil { framework.NewStatus(framework.Error, fmt.Sprintf("get all nodes from shared lister error, err: %v", err)) @@ -178,10 +178,10 @@ func (pl *InterPodAffinity) PreScore( if nodeInfo.Node() == nil { return } - // Unless the pod being scheduled has affinity terms, we only + // Unless the pod being scheduled has preferred affinity terms, we only // need to process pods with affinity in the node. podsToProcess := nodeInfo.PodsWithAffinity - if hasAffinityConstraints || hasAntiAffinityConstraints { + if hasPreferredAffinityConstraints || hasPreferredAntiAffinityConstraints { // We need to process all the pods. podsToProcess = nodeInfo.Pods }