From 27326e4f9a44a8222a5734454c37f6acf41de5a1 Mon Sep 17 00:00:00 2001 From: draveness Date: Fri, 4 Oct 2019 10:21:01 +0800 Subject: [PATCH] feat(scheduler): scale the extender output in generic scheduler --- pkg/scheduler/apis/extender/v1/types.go | 4 ++-- pkg/scheduler/core/generic_scheduler.go | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) 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) } }