diff --git a/pkg/scheduler/apis/extender/v1/types.go b/pkg/scheduler/apis/extender/v1/types.go index 33cde07fb53..fdfce41c740 100644 --- a/pkg/scheduler/apis/extender/v1/types.go +++ b/pkg/scheduler/apis/extender/v1/types.go @@ -23,10 +23,10 @@ import ( const ( // MinExtenderPriority defines the min priority value for extender. - MinExtenderPriority int = 0 + MinExtenderPriority int64 = 0 // MaxExtenderPriority defines the max priority value for extender. - MaxExtenderPriority int = 10 + MaxExtenderPriority int64 = 10 ) // ExtenderPreemptionResult represents the result returned by preemption phase of extender. diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 018db7587c7..7f5859484f6 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -840,7 +840,9 @@ func PrioritizeNodes( // wait for all go routines to finish wg.Wait() for i := range result { - result[i].Score += combinedScores[result[i].Name] + // MaxExtenderPriority may diverge from the max priority used in the scheduler and defined by MaxNodeScore, + // therefore we need to scale the score returned by extenders to the score range used by the scheduler. + result[i].Score += combinedScores[result[i].Name] * (framework.MaxNodeScore / extenderv1.MaxExtenderPriority) } }