mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Merge pull request #37513 from xiaolou86/podAffinity
Automatic merge from submit-queue Optimize pod affinity when predicate Optimize by returning as early as possible to avoid invoking priorityutil.PodMatchesTermsNamespaceAndSelector.
This commit is contained in:
commit
7b134995e5
@ -1116,6 +1116,11 @@ func (c *PodAffinityChecker) satisfiesPodsAffinityAntiAffinity(pod *v1.Pod, node
|
|||||||
// If the requirement matches a pod's own labels are namespace, and there are
|
// If the requirement matches a pod's own labels are namespace, and there are
|
||||||
// no other such pods, then disregard the requirement. This is necessary to
|
// no other such pods, then disregard the requirement. This is necessary to
|
||||||
// not block forever because the first pod of the collection can't be scheduled.
|
// not block forever because the first pod of the collection can't be scheduled.
|
||||||
|
if matchingPodExists {
|
||||||
|
glog.V(10).Infof("Cannot schedule pod %+v onto node %v,because of PodAffinityTerm %v, err: %v",
|
||||||
|
podName(pod), node.Name, term, err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
namespaces := priorityutil.GetNamespacesFromPodAffinityTerm(pod, &term)
|
namespaces := priorityutil.GetNamespacesFromPodAffinityTerm(pod, &term)
|
||||||
selector, err := metav1.LabelSelectorAsSelector(term.LabelSelector)
|
selector, err := metav1.LabelSelectorAsSelector(term.LabelSelector)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -1124,7 +1129,7 @@ func (c *PodAffinityChecker) satisfiesPodsAffinityAntiAffinity(pod *v1.Pod, node
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
match := priorityutil.PodMatchesTermsNamespaceAndSelector(pod, namespaces, selector)
|
match := priorityutil.PodMatchesTermsNamespaceAndSelector(pod, namespaces, selector)
|
||||||
if !match || matchingPodExists {
|
if !match {
|
||||||
glog.V(10).Infof("Cannot schedule pod %+v onto node %v,because of PodAffinityTerm %v, err: %v",
|
glog.V(10).Infof("Cannot schedule pod %+v onto node %v,because of PodAffinityTerm %v, err: %v",
|
||||||
podName(pod), node.Name, term, err)
|
podName(pod), node.Name, term, err)
|
||||||
return false
|
return false
|
||||||
|
Loading…
Reference in New Issue
Block a user