mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +00:00
Only process all nodes when incoming pod has no preferred affinity
Currently, in interpodaffinty plugin, it only processes all nodes when the incoming pod with affinity. Actually, it only cares about all nodes when the incoming pod with preferred affinity. Then it will reduces the number of nodes need to be processed.
This commit is contained in:
parent
9b78bd5979
commit
ccd8eb3b1b
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user