Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
89d6ec4b
Commit
89d6ec4b
authored
Oct 05, 2018
by
Darren Shepherd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove EnableEquivalenceClassCache
parent
63d8d89d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
4 additions
and
122 deletions
+4
-122
server.go
cmd/kube-scheduler/app/server.go
+0
-2
kube_features.go
pkg/features/kube_features.go
+0
-7
BUILD
pkg/scheduler/core/equivalence/BUILD
+0
-49
eqivalence.go
pkg/scheduler/core/equivalence/eqivalence.go
+0
-0
eqivalence_test.go
pkg/scheduler/core/equivalence/eqivalence_test.go
+0
-0
generic_scheduler.go
pkg/scheduler/core/generic_scheduler.go
+4
-40
factory.go
pkg/scheduler/factory/factory.go
+0
-0
scheduler.go
pkg/scheduler/scheduler.go
+0
-24
No files found.
cmd/kube-scheduler/app/server.go
View file @
89d6ec4b
...
@@ -187,7 +187,6 @@ func Run(cc schedulerserverconfig.CompletedConfig, stopCh <-chan struct{}) error
...
@@ -187,7 +187,6 @@ func Run(cc schedulerserverconfig.CompletedConfig, stopCh <-chan struct{}) error
stopCh
,
stopCh
,
scheduler
.
WithName
(
cc
.
ComponentConfig
.
SchedulerName
),
scheduler
.
WithName
(
cc
.
ComponentConfig
.
SchedulerName
),
scheduler
.
WithHardPodAffinitySymmetricWeight
(
cc
.
ComponentConfig
.
HardPodAffinitySymmetricWeight
),
scheduler
.
WithHardPodAffinitySymmetricWeight
(
cc
.
ComponentConfig
.
HardPodAffinitySymmetricWeight
),
scheduler
.
WithEquivalenceClassCacheEnabled
(
cc
.
ComponentConfig
.
EnableContentionProfiling
),
scheduler
.
WithPreemptionDisabled
(
cc
.
ComponentConfig
.
DisablePreemption
),
scheduler
.
WithPreemptionDisabled
(
cc
.
ComponentConfig
.
DisablePreemption
),
scheduler
.
WithPercentageOfNodesToScore
(
cc
.
ComponentConfig
.
PercentageOfNodesToScore
),
scheduler
.
WithPercentageOfNodesToScore
(
cc
.
ComponentConfig
.
PercentageOfNodesToScore
),
scheduler
.
WithBindTimeoutSeconds
(
*
cc
.
ComponentConfig
.
BindTimeoutSeconds
))
scheduler
.
WithBindTimeoutSeconds
(
*
cc
.
ComponentConfig
.
BindTimeoutSeconds
))
...
@@ -356,7 +355,6 @@ func NewSchedulerConfig(s schedulerserverconfig.CompletedConfig) (*factory.Confi
...
@@ -356,7 +355,6 @@ func NewSchedulerConfig(s schedulerserverconfig.CompletedConfig) (*factory.Confi
PdbInformer
:
s
.
InformerFactory
.
Policy
()
.
V1beta1
()
.
PodDisruptionBudgets
(),
PdbInformer
:
s
.
InformerFactory
.
Policy
()
.
V1beta1
()
.
PodDisruptionBudgets
(),
StorageClassInformer
:
storageClassInformer
,
StorageClassInformer
:
storageClassInformer
,
HardPodAffinitySymmetricWeight
:
s
.
ComponentConfig
.
HardPodAffinitySymmetricWeight
,
HardPodAffinitySymmetricWeight
:
s
.
ComponentConfig
.
HardPodAffinitySymmetricWeight
,
EnableEquivalenceClassCache
:
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
EnableEquivalenceClassCache
),
DisablePreemption
:
s
.
ComponentConfig
.
DisablePreemption
,
DisablePreemption
:
s
.
ComponentConfig
.
DisablePreemption
,
PercentageOfNodesToScore
:
s
.
ComponentConfig
.
PercentageOfNodesToScore
,
PercentageOfNodesToScore
:
s
.
ComponentConfig
.
PercentageOfNodesToScore
,
BindTimeoutSeconds
:
*
s
.
ComponentConfig
.
BindTimeoutSeconds
,
BindTimeoutSeconds
:
*
s
.
ComponentConfig
.
BindTimeoutSeconds
,
...
...
pkg/features/kube_features.go
View file @
89d6ec4b
...
@@ -109,12 +109,6 @@ const (
...
@@ -109,12 +109,6 @@ const (
// Add priority to pods. Priority affects scheduling and preemption of pods.
// Add priority to pods. Priority affects scheduling and preemption of pods.
PodPriority
utilfeature
.
Feature
=
"PodPriority"
PodPriority
utilfeature
.
Feature
=
"PodPriority"
// owner: @resouer
// alpha: v1.8
//
// Enable equivalence class cache for scheduler.
EnableEquivalenceClassCache
utilfeature
.
Feature
=
"EnableEquivalenceClassCache"
// owner: @k82cn
// owner: @k82cn
// beta: v1.12
// beta: v1.12
//
//
...
@@ -394,7 +388,6 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
...
@@ -394,7 +388,6 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
Sysctls
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
Sysctls
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
PodShareProcessNamespace
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
PodShareProcessNamespace
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
PodPriority
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
PodPriority
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
EnableEquivalenceClassCache
:
{
Default
:
false
,
PreRelease
:
utilfeature
.
Alpha
},
TaintNodesByCondition
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
TaintNodesByCondition
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
MountPropagation
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
GA
},
MountPropagation
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
GA
},
QOSReserved
:
{
Default
:
false
,
PreRelease
:
utilfeature
.
Alpha
},
QOSReserved
:
{
Default
:
false
,
PreRelease
:
utilfeature
.
Alpha
},
...
...
pkg/scheduler/core/equivalence/BUILD
deleted
100644 → 0
View file @
63d8d89d
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = ["eqivalence.go"],
importpath = "k8s.io/kubernetes/pkg/scheduler/core/equivalence",
visibility = ["//visibility:public"],
deps = [
"//pkg/features:go_default_library",
"//pkg/scheduler/algorithm:go_default_library",
"//pkg/scheduler/algorithm/predicates:go_default_library",
"//pkg/scheduler/cache:go_default_library",
"//pkg/scheduler/metrics:go_default_library",
"//pkg/util/hash:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = ["eqivalence_test.go"],
embed = [":go_default_library"],
deps = [
"//pkg/scheduler/algorithm:go_default_library",
"//pkg/scheduler/algorithm/predicates:go_default_library",
"//pkg/scheduler/cache:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
pkg/scheduler/core/equivalence/eqivalence.go
deleted
100644 → 0
View file @
63d8d89d
This diff is collapsed.
Click to expand it.
pkg/scheduler/core/equivalence/eqivalence_test.go
deleted
100644 → 0
View file @
63d8d89d
This diff is collapsed.
Click to expand it.
pkg/scheduler/core/generic_scheduler.go
View file @
89d6ec4b
...
@@ -40,7 +40,6 @@ import (
...
@@ -40,7 +40,6 @@ import (
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/core/equivalence"
schedulerinternalcache
"k8s.io/kubernetes/pkg/scheduler/internal/cache"
schedulerinternalcache
"k8s.io/kubernetes/pkg/scheduler/internal/cache"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
"k8s.io/kubernetes/pkg/scheduler/metrics"
"k8s.io/kubernetes/pkg/scheduler/metrics"
...
@@ -97,7 +96,6 @@ func (f *FitError) Error() string {
...
@@ -97,7 +96,6 @@ func (f *FitError) Error() string {
type
genericScheduler
struct
{
type
genericScheduler
struct
{
cache
schedulerinternalcache
.
Cache
cache
schedulerinternalcache
.
Cache
equivalenceCache
*
equivalence
.
Cache
schedulingQueue
internalqueue
.
SchedulingQueue
schedulingQueue
internalqueue
.
SchedulingQueue
predicates
map
[
string
]
algorithm
.
FitPredicate
predicates
map
[
string
]
algorithm
.
FitPredicate
priorityMetaProducer
algorithm
.
PriorityMetadataProducer
priorityMetaProducer
algorithm
.
PriorityMetadataProducer
...
@@ -117,18 +115,6 @@ type genericScheduler struct {
...
@@ -117,18 +115,6 @@ type genericScheduler struct {
// snapshot snapshots equivalane cache and node infos for all fit and priority
// snapshot snapshots equivalane cache and node infos for all fit and priority
// functions.
// functions.
func
(
g
*
genericScheduler
)
snapshot
()
error
{
func
(
g
*
genericScheduler
)
snapshot
()
error
{
// IMPORTANT NOTE: We must snapshot equivalence cache before snapshotting
// scheduler cache, otherwise stale data may be written into equivalence
// cache, e.g.
// 1. snapshot cache
// 2. event arrives, updating cache and invalidating predicates or whole node cache
// 3. snapshot ecache
// 4. evaludate predicates
// 5. stale result will be written to ecache
if
g
.
equivalenceCache
!=
nil
{
g
.
equivalenceCache
.
Snapshot
()
}
// Used for all fit and priority funcs.
// Used for all fit and priority funcs.
return
g
.
cache
.
UpdateNodeNameToInfoMap
(
g
.
cachedNodeInfoMap
)
return
g
.
cache
.
UpdateNodeNameToInfoMap
(
g
.
cachedNodeInfoMap
)
}
}
...
@@ -400,7 +386,6 @@ func (g *genericScheduler) findNodesThatFit(pod *v1.Pod, nodes []*v1.Node) ([]*v
...
@@ -400,7 +386,6 @@ func (g *genericScheduler) findNodesThatFit(pod *v1.Pod, nodes []*v1.Node) ([]*v
var
(
var
(
predicateResultLock
sync
.
Mutex
predicateResultLock
sync
.
Mutex
filteredLen
int32
filteredLen
int32
equivClass
*
equivalence
.
Class
)
)
ctx
,
cancel
:=
context
.
WithCancel
(
context
.
Background
())
ctx
,
cancel
:=
context
.
WithCancel
(
context
.
Background
())
...
@@ -408,26 +393,15 @@ func (g *genericScheduler) findNodesThatFit(pod *v1.Pod, nodes []*v1.Node) ([]*v
...
@@ -408,26 +393,15 @@ func (g *genericScheduler) findNodesThatFit(pod *v1.Pod, nodes []*v1.Node) ([]*v
// We can use the same metadata producer for all nodes.
// We can use the same metadata producer for all nodes.
meta
:=
g
.
predicateMetaProducer
(
pod
,
g
.
cachedNodeInfoMap
)
meta
:=
g
.
predicateMetaProducer
(
pod
,
g
.
cachedNodeInfoMap
)
if
g
.
equivalenceCache
!=
nil
{
// getEquivalenceClassInfo will return immediately if no equivalence pod found
equivClass
=
equivalence
.
NewClass
(
pod
)
}
checkNode
:=
func
(
i
int
)
{
checkNode
:=
func
(
i
int
)
{
var
nodeCache
*
equivalence
.
NodeCache
nodeName
:=
g
.
cache
.
NodeTree
()
.
Next
()
nodeName
:=
g
.
cache
.
NodeTree
()
.
Next
()
if
g
.
equivalenceCache
!=
nil
{
nodeCache
=
g
.
equivalenceCache
.
LoadNodeCache
(
nodeName
)
}
fits
,
failedPredicates
,
err
:=
podFitsOnNode
(
fits
,
failedPredicates
,
err
:=
podFitsOnNode
(
pod
,
pod
,
meta
,
meta
,
g
.
cachedNodeInfoMap
[
nodeName
],
g
.
cachedNodeInfoMap
[
nodeName
],
g
.
predicates
,
g
.
predicates
,
nodeCache
,
g
.
schedulingQueue
,
g
.
schedulingQueue
,
g
.
alwaysCheckAllPredicates
,
g
.
alwaysCheckAllPredicates
,
equivClass
,
)
)
if
err
!=
nil
{
if
err
!=
nil
{
predicateResultLock
.
Lock
()
predicateResultLock
.
Lock
()
...
@@ -536,13 +510,10 @@ func podFitsOnNode(
...
@@ -536,13 +510,10 @@ func podFitsOnNode(
meta
algorithm
.
PredicateMetadata
,
meta
algorithm
.
PredicateMetadata
,
info
*
schedulercache
.
NodeInfo
,
info
*
schedulercache
.
NodeInfo
,
predicateFuncs
map
[
string
]
algorithm
.
FitPredicate
,
predicateFuncs
map
[
string
]
algorithm
.
FitPredicate
,
nodeCache
*
equivalence
.
NodeCache
,
queue
internalqueue
.
SchedulingQueue
,
queue
internalqueue
.
SchedulingQueue
,
alwaysCheckAllPredicates
bool
,
alwaysCheckAllPredicates
bool
,
equivClass
*
equivalence
.
Class
,
)
(
bool
,
[]
algorithm
.
PredicateFailureReason
,
error
)
{
)
(
bool
,
[]
algorithm
.
PredicateFailureReason
,
error
)
{
var
(
var
(
eCacheAvailable
bool
failedPredicates
[]
algorithm
.
PredicateFailureReason
failedPredicates
[]
algorithm
.
PredicateFailureReason
)
)
...
@@ -576,8 +547,7 @@ func podFitsOnNode(
...
@@ -576,8 +547,7 @@ func podFitsOnNode(
// Bypass eCache if node has any nominated pods.
// Bypass eCache if node has any nominated pods.
// TODO(bsalamat): consider using eCache and adding proper eCache invalidations
// TODO(bsalamat): consider using eCache and adding proper eCache invalidations
// when pods are nominated or their nominations change.
// when pods are nominated or their nominations change.
eCacheAvailable
=
equivClass
!=
nil
&&
nodeCache
!=
nil
&&
!
podsAdded
for
_
,
predicateKey
:=
range
predicates
.
Ordering
()
{
for
predicateID
,
predicateKey
:=
range
predicates
.
Ordering
()
{
var
(
var
(
fit
bool
fit
bool
reasons
[]
algorithm
.
PredicateFailureReason
reasons
[]
algorithm
.
PredicateFailureReason
...
@@ -585,11 +555,7 @@ func podFitsOnNode(
...
@@ -585,11 +555,7 @@ func podFitsOnNode(
)
)
//TODO (yastij) : compute average predicate restrictiveness to export it as Prometheus metric
//TODO (yastij) : compute average predicate restrictiveness to export it as Prometheus metric
if
predicate
,
exist
:=
predicateFuncs
[
predicateKey
];
exist
{
if
predicate
,
exist
:=
predicateFuncs
[
predicateKey
];
exist
{
if
eCacheAvailable
{
fit
,
reasons
,
err
=
predicate
(
pod
,
metaToUse
,
nodeInfoToUse
)
fit
,
reasons
,
err
=
nodeCache
.
RunPredicate
(
predicate
,
predicateKey
,
predicateID
,
pod
,
metaToUse
,
nodeInfoToUse
,
equivClass
)
}
else
{
fit
,
reasons
,
err
=
predicate
(
pod
,
metaToUse
,
nodeInfoToUse
)
}
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
[]
algorithm
.
PredicateFailureReason
{},
err
return
false
,
[]
algorithm
.
PredicateFailureReason
{},
err
}
}
...
@@ -1018,7 +984,7 @@ func selectVictimsOnNode(
...
@@ -1018,7 +984,7 @@ func selectVictimsOnNode(
// that we should check is if the "pod" is failing to schedule due to pod affinity
// that we should check is if the "pod" is failing to schedule due to pod affinity
// failure.
// failure.
// TODO(bsalamat): Consider checking affinity to lower priority pods if feasible with reasonable performance.
// TODO(bsalamat): Consider checking affinity to lower priority pods if feasible with reasonable performance.
if
fits
,
_
,
err
:=
podFitsOnNode
(
pod
,
meta
,
nodeInfoCopy
,
fitPredicates
,
nil
,
queue
,
false
,
nil
);
!
fits
{
if
fits
,
_
,
err
:=
podFitsOnNode
(
pod
,
meta
,
nodeInfoCopy
,
fitPredicates
,
queue
,
false
);
!
fits
{
if
err
!=
nil
{
if
err
!=
nil
{
klog
.
Warningf
(
"Encountered error while selecting victims on node %v: %v"
,
nodeInfo
.
Node
()
.
Name
,
err
)
klog
.
Warningf
(
"Encountered error while selecting victims on node %v: %v"
,
nodeInfo
.
Node
()
.
Name
,
err
)
}
}
...
@@ -1032,7 +998,7 @@ func selectVictimsOnNode(
...
@@ -1032,7 +998,7 @@ func selectVictimsOnNode(
violatingVictims
,
nonViolatingVictims
:=
filterPodsWithPDBViolation
(
potentialVictims
.
Items
,
pdbs
)
violatingVictims
,
nonViolatingVictims
:=
filterPodsWithPDBViolation
(
potentialVictims
.
Items
,
pdbs
)
reprievePod
:=
func
(
p
*
v1
.
Pod
)
bool
{
reprievePod
:=
func
(
p
*
v1
.
Pod
)
bool
{
addPod
(
p
)
addPod
(
p
)
fits
,
_
,
_
:=
podFitsOnNode
(
pod
,
meta
,
nodeInfoCopy
,
fitPredicates
,
nil
,
queue
,
false
,
nil
)
fits
,
_
,
_
:=
podFitsOnNode
(
pod
,
meta
,
nodeInfoCopy
,
fitPredicates
,
queue
,
false
)
if
!
fits
{
if
!
fits
{
removePod
(
p
)
removePod
(
p
)
victims
=
append
(
victims
,
p
)
victims
=
append
(
victims
,
p
)
...
@@ -1148,7 +1114,6 @@ func podPassesBasicChecks(pod *v1.Pod, pvcLister corelisters.PersistentVolumeCla
...
@@ -1148,7 +1114,6 @@ func podPassesBasicChecks(pod *v1.Pod, pvcLister corelisters.PersistentVolumeCla
// NewGenericScheduler creates a genericScheduler object.
// NewGenericScheduler creates a genericScheduler object.
func
NewGenericScheduler
(
func
NewGenericScheduler
(
cache
schedulerinternalcache
.
Cache
,
cache
schedulerinternalcache
.
Cache
,
eCache
*
equivalence
.
Cache
,
podQueue
internalqueue
.
SchedulingQueue
,
podQueue
internalqueue
.
SchedulingQueue
,
predicates
map
[
string
]
algorithm
.
FitPredicate
,
predicates
map
[
string
]
algorithm
.
FitPredicate
,
predicateMetaProducer
algorithm
.
PredicateMetadataProducer
,
predicateMetaProducer
algorithm
.
PredicateMetadataProducer
,
...
@@ -1164,7 +1129,6 @@ func NewGenericScheduler(
...
@@ -1164,7 +1129,6 @@ func NewGenericScheduler(
)
algorithm
.
ScheduleAlgorithm
{
)
algorithm
.
ScheduleAlgorithm
{
return
&
genericScheduler
{
return
&
genericScheduler
{
cache
:
cache
,
cache
:
cache
,
equivalenceCache
:
eCache
,
schedulingQueue
:
podQueue
,
schedulingQueue
:
podQueue
,
predicates
:
predicates
,
predicates
:
predicates
,
predicateMetaProducer
:
predicateMetaProducer
,
predicateMetaProducer
:
predicateMetaProducer
,
...
...
pkg/scheduler/factory/factory.go
View file @
89d6ec4b
This diff is collapsed.
Click to expand it.
pkg/scheduler/scheduler.go
View file @
89d6ec4b
...
@@ -25,7 +25,6 @@ import (
...
@@ -25,7 +25,6 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
appsinformers
"k8s.io/client-go/informers/apps/v1"
appsinformers
"k8s.io/client-go/informers/apps/v1"
...
@@ -35,7 +34,6 @@ import (
...
@@ -35,7 +34,6 @@ import (
clientset
"k8s.io/client-go/kubernetes"
clientset
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
latestschedulerapi
"k8s.io/kubernetes/pkg/scheduler/api/latest"
latestschedulerapi
"k8s.io/kubernetes/pkg/scheduler/api/latest"
kubeschedulerconfig
"k8s.io/kubernetes/pkg/scheduler/apis/config"
kubeschedulerconfig
"k8s.io/kubernetes/pkg/scheduler/apis/config"
...
@@ -67,7 +65,6 @@ func (sched *Scheduler) Cache() schedulerinternalcache.Cache {
...
@@ -67,7 +65,6 @@ func (sched *Scheduler) Cache() schedulerinternalcache.Cache {
type
schedulerOptions
struct
{
type
schedulerOptions
struct
{
schedulerName
string
schedulerName
string
hardPodAffinitySymmetricWeight
int32
hardPodAffinitySymmetricWeight
int32
enableEquivalenceClassCache
bool
disablePreemption
bool
disablePreemption
bool
percentageOfNodesToScore
int32
percentageOfNodesToScore
int32
bindTimeoutSeconds
int64
bindTimeoutSeconds
int64
...
@@ -90,13 +87,6 @@ func WithHardPodAffinitySymmetricWeight(hardPodAffinitySymmetricWeight int32) Op
...
@@ -90,13 +87,6 @@ func WithHardPodAffinitySymmetricWeight(hardPodAffinitySymmetricWeight int32) Op
}
}
}
}
// WithEquivalenceClassCacheEnabled sets enableEquivalenceClassCache for Scheduler, the default value is false
func
WithEquivalenceClassCacheEnabled
(
enableEquivalenceClassCache
bool
)
Option
{
return
func
(
o
*
schedulerOptions
)
{
o
.
enableEquivalenceClassCache
=
enableEquivalenceClassCache
}
}
// WithPreemptionDisabled sets disablePreemption for Scheduler, the default value is false
// WithPreemptionDisabled sets disablePreemption for Scheduler, the default value is false
func
WithPreemptionDisabled
(
disablePreemption
bool
)
Option
{
func
WithPreemptionDisabled
(
disablePreemption
bool
)
Option
{
return
func
(
o
*
schedulerOptions
)
{
return
func
(
o
*
schedulerOptions
)
{
...
@@ -121,7 +111,6 @@ func WithBindTimeoutSeconds(bindTimeoutSeconds int64) Option {
...
@@ -121,7 +111,6 @@ func WithBindTimeoutSeconds(bindTimeoutSeconds int64) Option {
var
defaultSchedulerOptions
=
schedulerOptions
{
var
defaultSchedulerOptions
=
schedulerOptions
{
schedulerName
:
v1
.
DefaultSchedulerName
,
schedulerName
:
v1
.
DefaultSchedulerName
,
hardPodAffinitySymmetricWeight
:
v1
.
DefaultHardPodAffinitySymmetricWeight
,
hardPodAffinitySymmetricWeight
:
v1
.
DefaultHardPodAffinitySymmetricWeight
,
enableEquivalenceClassCache
:
false
,
disablePreemption
:
false
,
disablePreemption
:
false
,
percentageOfNodesToScore
:
schedulerapi
.
DefaultPercentageOfNodesToScore
,
percentageOfNodesToScore
:
schedulerapi
.
DefaultPercentageOfNodesToScore
,
bindTimeoutSeconds
:
BindTimeoutSeconds
,
bindTimeoutSeconds
:
BindTimeoutSeconds
,
...
@@ -164,7 +153,6 @@ func New(client clientset.Interface,
...
@@ -164,7 +153,6 @@ func New(client clientset.Interface,
PdbInformer
:
pdbInformer
,
PdbInformer
:
pdbInformer
,
StorageClassInformer
:
storageClassInformer
,
StorageClassInformer
:
storageClassInformer
,
HardPodAffinitySymmetricWeight
:
options
.
hardPodAffinitySymmetricWeight
,
HardPodAffinitySymmetricWeight
:
options
.
hardPodAffinitySymmetricWeight
,
EnableEquivalenceClassCache
:
options
.
enableEquivalenceClassCache
,
DisablePreemption
:
options
.
disablePreemption
,
DisablePreemption
:
options
.
disablePreemption
,
PercentageOfNodesToScore
:
options
.
percentageOfNodesToScore
,
PercentageOfNodesToScore
:
options
.
percentageOfNodesToScore
,
BindTimeoutSeconds
:
options
.
bindTimeoutSeconds
,
BindTimeoutSeconds
:
options
.
bindTimeoutSeconds
,
...
@@ -379,12 +367,6 @@ func (sched *Scheduler) assumeVolumes(assumed *v1.Pod, host string) (allBound bo
...
@@ -379,12 +367,6 @@ func (sched *Scheduler) assumeVolumes(assumed *v1.Pod, host string) (allBound bo
Message
:
err
.
Error
(),
Message
:
err
.
Error
(),
})
})
}
}
// Invalidate ecache because assumed volumes could have affected the cached
// pvs for other pods
if
sched
.
config
.
Ecache
!=
nil
{
invalidPredicates
:=
sets
.
NewString
(
predicates
.
CheckVolumeBindingPred
)
sched
.
config
.
Ecache
.
InvalidatePredicates
(
invalidPredicates
)
}
}
}
return
return
}
}
...
@@ -464,12 +446,6 @@ func (sched *Scheduler) assume(assumed *v1.Pod, host string) error {
...
@@ -464,12 +446,6 @@ func (sched *Scheduler) assume(assumed *v1.Pod, host string) error {
sched
.
config
.
SchedulingQueue
.
DeleteNominatedPodIfExists
(
assumed
)
sched
.
config
.
SchedulingQueue
.
DeleteNominatedPodIfExists
(
assumed
)
}
}
// Optimistically assume that the binding will succeed, so we need to invalidate affected
// predicates in equivalence cache.
// If the binding fails, these invalidated item will not break anything.
if
sched
.
config
.
Ecache
!=
nil
{
sched
.
config
.
Ecache
.
InvalidateCachedPredicateItemForPodAdd
(
assumed
,
host
)
}
return
nil
return
nil
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment