Browse Source

added in-memory

Achilleas Tzenetopoulos 5 years ago
parent
commit
39859aadaf

+ 1 - 0
kubernetes-v1.15.4/go.mod

@@ -87,6 +87,7 @@ require (
 	github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6 // indirect
 	github.com/heketi/utils v0.0.0-20170317161834-435bc5bdfa64 // indirect
 	github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d
+	github.com/iwita/kube-scheduler v0.0.0-20200501172708-5cd294e6450f
 	github.com/jonboulle/clockwork v0.0.0-20141017032234-72f9bd7c4e0c
 	github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be
 	github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024

+ 2 - 0
kubernetes-v1.15.4/go.sum

@@ -238,6 +238,8 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA=
 github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
+github.com/iwita/kube-scheduler v0.0.0-20200501172708-5cd294e6450f h1:UP5mM/jStiTwzQu4FHNxRx4SUk1SdxMo9o80dBMLaWc=
+github.com/iwita/kube-scheduler v0.0.0-20200501172708-5cd294e6450f/go.mod h1:aRvokpQlxArgPHMKU1uXJ4p7cj1EnASm4OK880rgfqc=
 github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
 github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
 github.com/jonboulle/clockwork v0.0.0-20141017032234-72f9bd7c4e0c h1:XpRROA6ssPlTwJI8/pH+61uieOkcJhmAFz25cu0B94Y=

+ 2 - 2
kubernetes-v1.15.4/pkg/scheduler/algorithm/priorities/custom_resource_allocation.go

@@ -23,8 +23,8 @@ import (
 
 	_ "github.com/go-sql-driver/mysql"
 	client "github.com/influxdata/influxdb1-client/v2"
+	"github.com/iwita/kube-scheduler/customcache"
 	"k8s.io/klog"
-	"k8s.io/kubernetes/pkg/scheduler/customcache"
 )
 
 var (
@@ -151,7 +151,7 @@ func customResourceScorer(nodeName string) (float64, error) {
 
 		// Select Node
 
-		klog.Infof("Node name %s, has score %v\n", nodeName, res)
+		klog.Infof("Using the cached values, Node name %s, has score %v\n", nodeName, res)
 		return res, nil
 	}
 

+ 4 - 3
kubernetes-v1.15.4/pkg/scheduler/core/generic_scheduler.go

@@ -28,6 +28,7 @@ import (
 
 	"k8s.io/klog"
 
+	"github.com/iwita/kube-scheduler/customcache"
 	v1 "k8s.io/api/core/v1"
 	policy "k8s.io/api/policy/v1beta1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -39,7 +40,6 @@ import (
 	"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
 	"k8s.io/kubernetes/pkg/scheduler/algorithm/priorities"
 	schedulerapi "k8s.io/kubernetes/pkg/scheduler/api"
-	"k8s.io/kubernetes/pkg/scheduler/customcache"
 	framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
 	internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
 	internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
@@ -303,7 +303,7 @@ func (g *genericScheduler) Schedule(pod *v1.Pod, nodeLister algorithm.NodeLister
 			tmp = append(tmp, key)
 		}
 	}
-	for n := range tmp {
+	for _, n := range tmp {
 		if priorities.Sockets[n] == winningSocket {
 			socketNodes = append(socketNodes, n)
 		}
@@ -312,7 +312,8 @@ func (g *genericScheduler) Schedule(pod *v1.Pod, nodeLister algorithm.NodeLister
 	// Add pod's information (average metrics to the winning nodes metrics) and cache them
 	podName := pod.ObjectMeta.Name
 
-	for n := range winningSocket {
+	for _, n := range socketNodes {
+		klog.Infof("Update Score for Node %v, using App: %v", n,podName)
 		numCores := len(priorities.Cores[n])
 		customcache.LabCache.AddAppMetrics(priorities.Applications[podName].Metrics, n, numCores)
 	}

+ 1 - 2
kubernetes-v1.15.4/pkg/scheduler/customcache/cache.go

@@ -2,10 +2,9 @@ package customcache
 
 import (
 	"sync"
-	"time"
 )
 
-var timeout *time.Ticker = time.NewTicker(time.Duration(10 * time.Second))
+//var timeout *time.Ticker = time.NewTicker(time.Duration(10 * time.Second))
 
 type MlabCache struct {
 	Cache map[string]map[string]float64

+ 3 - 1
kubernetes-v1.15.4/pkg/scheduler/scheduler.go

@@ -24,6 +24,8 @@ import (
 
 	"k8s.io/klog"
 
+	"github.com/iwita/kube-scheduler/customcache"
+
 	v1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
@@ -38,7 +40,6 @@ import (
 	latestschedulerapi "k8s.io/kubernetes/pkg/scheduler/api/latest"
 	kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config"
 	"k8s.io/kubernetes/pkg/scheduler/core"
-	"k8s.io/kubernetes/pkg/scheduler/customcache"
 	"k8s.io/kubernetes/pkg/scheduler/factory"
 	framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
 	internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
@@ -257,6 +258,7 @@ func (sched *Scheduler) Run() {
 		return
 	}
 
+	var timeout *time.Ticker = time.NewTicker(time.Duration(10 * time.Second))
 	go wait.Until(sched.scheduleOne, 0, sched.config.StopEverything)
 }