mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	Merge pull request #98096 from leileiwan/master
fix(*):inter pod affinity default min score is zero
This commit is contained in:
		@@ -19,6 +19,7 @@ package interpodaffinity
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"math"
 | 
			
		||||
	"sync/atomic"
 | 
			
		||||
 | 
			
		||||
	v1 "k8s.io/api/core/v1"
 | 
			
		||||
@@ -252,7 +253,8 @@ func (pl *InterPodAffinity) NormalizeScore(ctx context.Context, cycleState *fram
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var maxCount, minCount int64
 | 
			
		||||
	var minCount int64 = math.MaxInt64
 | 
			
		||||
	var maxCount int64 = -math.MaxInt64
 | 
			
		||||
	for i := range scores {
 | 
			
		||||
		score := scores[i].Score
 | 
			
		||||
		if score > maxCount {
 | 
			
		||||
 
 | 
			
		||||
@@ -371,7 +371,7 @@ func TestPreferredAffinity(t *testing.T) {
 | 
			
		||||
				{ObjectMeta: metav1.ObjectMeta{Name: "machine4", Labels: labelRgChina}},
 | 
			
		||||
				{ObjectMeta: metav1.ObjectMeta{Name: "machine5", Labels: labelRgIndia}},
 | 
			
		||||
			},
 | 
			
		||||
			expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: 50}, {Name: "machine3", Score: framework.MaxNodeScore}, {Name: "machine4", Score: framework.MaxNodeScore}, {Name: "machine5", Score: 50}},
 | 
			
		||||
			expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: 0}, {Name: "machine3", Score: framework.MaxNodeScore}, {Name: "machine4", Score: framework.MaxNodeScore}, {Name: "machine5", Score: 0}},
 | 
			
		||||
			name:         "Affinity: nodes in one region has more matching pods comparing to other region, so the region which has more matches will get high score",
 | 
			
		||||
		},
 | 
			
		||||
		// Test with the different operators and values for pod affinity scheduling preference, including some match failures.
 | 
			
		||||
@@ -517,7 +517,7 @@ func TestPreferredAffinity(t *testing.T) {
 | 
			
		||||
				{ObjectMeta: metav1.ObjectMeta{Name: "machine4", Labels: labelRgChina}},
 | 
			
		||||
				{ObjectMeta: metav1.ObjectMeta{Name: "machine5", Labels: labelRgIndia}},
 | 
			
		||||
			},
 | 
			
		||||
			expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: 40}, {Name: "machine3", Score: framework.MaxNodeScore}, {Name: "machine4", Score: framework.MaxNodeScore}, {Name: "machine5", Score: 40}},
 | 
			
		||||
			expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: 0}, {Name: "machine3", Score: framework.MaxNodeScore}, {Name: "machine4", Score: framework.MaxNodeScore}, {Name: "machine5", Score: 0}},
 | 
			
		||||
			name:         "Affinity and Anti Affinity: considering both affinity and anti-affinity, the pod to schedule and existing pods have the same labels",
 | 
			
		||||
		},
 | 
			
		||||
		// Consider Affinity, Anti Affinity and symmetry together.
 | 
			
		||||
@@ -555,7 +555,7 @@ func TestPreferredAffinity(t *testing.T) {
 | 
			
		||||
				{ObjectMeta: metav1.ObjectMeta{Name: "machine1", Labels: labelRgChina}},
 | 
			
		||||
				{ObjectMeta: metav1.ObjectMeta{Name: "machine2", Labels: labelRgChina}},
 | 
			
		||||
			},
 | 
			
		||||
			expectedList: []framework.NodeScore{{Name: "machine1", Score: framework.MaxNodeScore}, {Name: "machine2", Score: framework.MaxNodeScore}},
 | 
			
		||||
			expectedList: []framework.NodeScore{{Name: "machine1", Score: 0}, {Name: "machine2", Score: 0}},
 | 
			
		||||
			name:         "Avoid panic when partial nodes in a topology don't have pods with affinity",
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user