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
9da576f0
Unverified
Commit
9da576f0
authored
Sep 21, 2018
by
Wei Huang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move SchedulingQueue to pkg/scheduler/internal/queue
parent
2e7461c0
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
30 additions
and
24 deletions
+30
-24
extender_test.go
pkg/scheduler/core/extender_test.go
+2
-1
generic_scheduler.go
pkg/scheduler/core/generic_scheduler.go
+7
-6
generic_scheduler_test.go
pkg/scheduler/core/generic_scheduler_test.go
+6
-5
cache_comparer.go
pkg/scheduler/factory/cache_comparer.go
+2
-2
factory.go
pkg/scheduler/factory/factory.go
+4
-3
factory_test.go
pkg/scheduler/factory/factory_test.go
+2
-2
scheduling_queue.go
pkg/scheduler/internal/queue/scheduling_queue.go
+1
-1
scheduling_queue_test.go
pkg/scheduler/internal/queue/scheduling_queue_test.go
+2
-1
scheduler.go
pkg/scheduler/scheduler.go
+2
-1
testutil.go
pkg/scheduler/testutil.go
+2
-2
No files found.
pkg/scheduler/core/extender_test.go
View file @
9da576f0
...
...
@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/pkg/scheduler/algorithm"
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
schedulertesting
"k8s.io/kubernetes/pkg/scheduler/testing"
"k8s.io/kubernetes/pkg/scheduler/util"
)
...
...
@@ -501,7 +502,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
for
_
,
name
:=
range
test
.
nodes
{
cache
.
AddNode
(
createNode
(
name
))
}
queue
:=
NewSchedulingQueue
()
queue
:=
internalqueue
.
NewSchedulingQueue
()
scheduler
:=
NewGenericScheduler
(
cache
,
nil
,
...
...
pkg/scheduler/core/generic_scheduler.go
View file @
9da576f0
...
...
@@ -41,6 +41,7 @@ import (
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/core/equivalence"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
"k8s.io/kubernetes/pkg/scheduler/metrics"
"k8s.io/kubernetes/pkg/scheduler/util"
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
...
...
@@ -96,7 +97,7 @@ func (f *FitError) Error() string {
type
genericScheduler
struct
{
cache
schedulercache
.
Cache
equivalenceCache
*
equivalence
.
Cache
schedulingQueue
SchedulingQueue
schedulingQueue
internalqueue
.
SchedulingQueue
predicates
map
[
string
]
algorithm
.
FitPredicate
priorityMetaProducer
algorithm
.
PriorityMetadataProducer
predicateMetaProducer
algorithm
.
PredicateMetadataProducer
...
...
@@ -493,7 +494,7 @@ func (g *genericScheduler) findNodesThatFit(pod *v1.Pod, nodes []*v1.Node) ([]*v
// to run on the node given in nodeInfo to meta and nodeInfo. It returns 1) whether
// any pod was found, 2) augmented meta data, 3) augmented nodeInfo.
func
addNominatedPods
(
podPriority
int32
,
meta
algorithm
.
PredicateMetadata
,
nodeInfo
*
schedulercache
.
NodeInfo
,
queue
SchedulingQueue
)
(
bool
,
algorithm
.
PredicateMetadata
,
nodeInfo
*
schedulercache
.
NodeInfo
,
queue
internalqueue
.
SchedulingQueue
)
(
bool
,
algorithm
.
PredicateMetadata
,
*
schedulercache
.
NodeInfo
)
{
if
queue
==
nil
||
nodeInfo
==
nil
||
nodeInfo
.
Node
()
==
nil
{
// This may happen only in tests.
...
...
@@ -535,7 +536,7 @@ func podFitsOnNode(
info
*
schedulercache
.
NodeInfo
,
predicateFuncs
map
[
string
]
algorithm
.
FitPredicate
,
nodeCache
*
equivalence
.
NodeCache
,
queue
SchedulingQueue
,
queue
internalqueue
.
SchedulingQueue
,
alwaysCheckAllPredicates
bool
,
equivClass
*
equivalence
.
Class
,
)
(
bool
,
[]
algorithm
.
PredicateFailureReason
,
error
)
{
...
...
@@ -887,7 +888,7 @@ func selectNodesForPreemption(pod *v1.Pod,
potentialNodes
[]
*
v1
.
Node
,
predicates
map
[
string
]
algorithm
.
FitPredicate
,
metadataProducer
algorithm
.
PredicateMetadataProducer
,
queue
SchedulingQueue
,
queue
internalqueue
.
SchedulingQueue
,
pdbs
[]
*
policy
.
PodDisruptionBudget
,
)
(
map
[
*
v1
.
Node
]
*
schedulerapi
.
Victims
,
error
)
{
...
...
@@ -976,7 +977,7 @@ func selectVictimsOnNode(
meta
algorithm
.
PredicateMetadata
,
nodeInfo
*
schedulercache
.
NodeInfo
,
fitPredicates
map
[
string
]
algorithm
.
FitPredicate
,
queue
SchedulingQueue
,
queue
internalqueue
.
SchedulingQueue
,
pdbs
[]
*
policy
.
PodDisruptionBudget
,
)
([]
*
v1
.
Pod
,
int
,
bool
)
{
potentialVictims
:=
util
.
SortableList
{
CompFunc
:
util
.
HigherPriorityPod
}
...
...
@@ -1140,7 +1141,7 @@ func podPassesBasicChecks(pod *v1.Pod, pvcLister corelisters.PersistentVolumeCla
func
NewGenericScheduler
(
cache
schedulercache
.
Cache
,
eCache
*
equivalence
.
Cache
,
podQueue
SchedulingQueue
,
podQueue
internalqueue
.
SchedulingQueue
,
predicates
map
[
string
]
algorithm
.
FitPredicate
,
predicateMetaProducer
algorithm
.
PredicateMetadataProducer
,
prioritizers
[]
algorithm
.
PriorityConfig
,
...
...
pkg/scheduler/core/generic_scheduler_test.go
View file @
9da576f0
...
...
@@ -41,6 +41,7 @@ import (
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/core/equivalence"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
schedulertesting
"k8s.io/kubernetes/pkg/scheduler/testing"
)
...
...
@@ -447,7 +448,7 @@ func TestGenericScheduler(t *testing.T) {
scheduler
:=
NewGenericScheduler
(
cache
,
nil
,
NewSchedulingQueue
(),
internalqueue
.
NewSchedulingQueue
(),
test
.
predicates
,
algorithm
.
EmptyPredicateMetadataProducer
,
test
.
prioritizers
,
...
...
@@ -483,7 +484,7 @@ func makeScheduler(predicates map[string]algorithm.FitPredicate, nodes []*v1.Nod
s
:=
NewGenericScheduler
(
cache
,
nil
,
NewSchedulingQueue
(),
internalqueue
.
NewSchedulingQueue
(),
predicates
,
algorithm
.
EmptyPredicateMetadataProducer
,
prioritizers
,
...
...
@@ -1404,7 +1405,7 @@ func TestPreempt(t *testing.T) {
scheduler
:=
NewGenericScheduler
(
cache
,
nil
,
NewSchedulingQueue
(),
internalqueue
.
NewSchedulingQueue
(),
map
[
string
]
algorithm
.
FitPredicate
{
"matches"
:
algorithmpredicates
.
PodFitsResources
},
algorithm
.
EmptyPredicateMetadataProducer
,
[]
algorithm
.
PriorityConfig
{{
Function
:
numericPriority
,
Weight
:
1
}},
...
...
@@ -1531,7 +1532,7 @@ func TestCacheInvalidationRace(t *testing.T) {
scheduler
:=
NewGenericScheduler
(
mockCache
,
eCache
,
NewSchedulingQueue
(),
internalqueue
.
NewSchedulingQueue
(),
ps
,
algorithm
.
EmptyPredicateMetadataProducer
,
prioritizers
,
...
...
@@ -1614,7 +1615,7 @@ func TestCacheInvalidationRace2(t *testing.T) {
scheduler
:=
NewGenericScheduler
(
cache
,
eCache
,
NewSchedulingQueue
(),
internalqueue
.
NewSchedulingQueue
(),
ps
,
algorithm
.
EmptyPredicateMetadataProducer
,
prioritizers
,
...
...
pkg/scheduler/factory/cache_comparer.go
View file @
9da576f0
...
...
@@ -25,14 +25,14 @@ import (
"k8s.io/apimachinery/pkg/labels"
corelisters
"k8s.io/client-go/listers/core/v1"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/cor
e"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queu
e"
)
type
cacheComparer
struct
{
nodeLister
corelisters
.
NodeLister
podLister
corelisters
.
PodLister
cache
schedulercache
.
Cache
podQueue
cor
e
.
SchedulingQueue
podQueue
internalqueu
e
.
SchedulingQueue
compareStrategy
}
...
...
pkg/scheduler/factory/factory.go
View file @
9da576f0
...
...
@@ -60,6 +60,7 @@ import (
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/core"
"k8s.io/kubernetes/pkg/scheduler/core/equivalence"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
"k8s.io/kubernetes/pkg/scheduler/util"
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
)
...
...
@@ -81,7 +82,7 @@ var (
type
configFactory
struct
{
client
clientset
.
Interface
// queue for pods that need scheduling
podQueue
cor
e
.
SchedulingQueue
podQueue
internalqueu
e
.
SchedulingQueue
// a means to list all known scheduled pods.
scheduledPodLister
corelisters
.
PodLister
// a means to list all known scheduled pods and pods assumed to have been scheduled.
...
...
@@ -175,7 +176,7 @@ func NewConfigFactory(args *ConfigFactoryArgs) scheduler.Configurator {
c
:=
&
configFactory
{
client
:
args
.
Client
,
podLister
:
schedulerCache
,
podQueue
:
cor
e
.
NewSchedulingQueue
(),
podQueue
:
internalqueu
e
.
NewSchedulingQueue
(),
nodeLister
:
args
.
NodeInformer
.
Lister
(),
pVLister
:
args
.
PvInformer
.
Lister
(),
pVCLister
:
args
.
PvcInformer
.
Lister
(),
...
...
@@ -1348,7 +1349,7 @@ func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) core
}
}
func
(
c
*
configFactory
)
MakeDefaultErrorFunc
(
backoff
*
util
.
PodBackoff
,
podQueue
cor
e
.
SchedulingQueue
)
func
(
pod
*
v1
.
Pod
,
err
error
)
{
func
(
c
*
configFactory
)
MakeDefaultErrorFunc
(
backoff
*
util
.
PodBackoff
,
podQueue
internalqueu
e
.
SchedulingQueue
)
func
(
pod
*
v1
.
Pod
,
err
error
)
{
return
func
(
pod
*
v1
.
Pod
,
err
error
)
{
if
err
==
core
.
ErrNoNodesAvailable
{
glog
.
V
(
4
)
.
Infof
(
"Unable to schedule %v/%v: no nodes are registered to the cluster; waiting"
,
pod
.
Namespace
,
pod
.
Name
)
...
...
pkg/scheduler/factory/factory_test.go
View file @
9da576f0
...
...
@@ -41,7 +41,7 @@ import (
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
latestschedulerapi
"k8s.io/kubernetes/pkg/scheduler/api/latest"
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/cor
e"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queu
e"
schedulertesting
"k8s.io/kubernetes/pkg/scheduler/testing"
"k8s.io/kubernetes/pkg/scheduler/util"
)
...
...
@@ -296,7 +296,7 @@ func TestDefaultErrorFunc(t *testing.T) {
defer
server
.
Close
()
client
:=
clientset
.
NewForConfigOrDie
(
&
restclient
.
Config
{
Host
:
server
.
URL
,
ContentConfig
:
restclient
.
ContentConfig
{
GroupVersion
:
&
schema
.
GroupVersion
{
Group
:
""
,
Version
:
"v1"
}}})
factory
:=
newConfigFactory
(
client
,
v1
.
DefaultHardPodAffinitySymmetricWeight
)
queue
:=
&
cor
e
.
FIFO
{
FIFO
:
cache
.
NewFIFO
(
cache
.
MetaNamespaceKeyFunc
)}
queue
:=
&
internalqueu
e
.
FIFO
{
FIFO
:
cache
.
NewFIFO
(
cache
.
MetaNamespaceKeyFunc
)}
podBackoff
:=
util
.
CreatePodBackoff
(
1
*
time
.
Millisecond
,
1
*
time
.
Second
)
errFunc
:=
factory
.
MakeDefaultErrorFunc
(
podBackoff
,
queue
)
...
...
pkg/scheduler/
cor
e/scheduling_queue.go
→
pkg/scheduler/
internal/queu
e/scheduling_queue.go
View file @
9da576f0
...
...
@@ -24,7 +24,7 @@ limitations under the License.
// FIFO is here for flag-gating purposes and allows us to use the traditional
// scheduling queue when util.PodPriorityEnabled() returns false.
package
cor
e
package
queu
e
import
(
"container/heap"
...
...
pkg/scheduler/
cor
e/scheduling_queue_test.go
→
pkg/scheduler/
internal/queu
e/scheduling_queue_test.go
View file @
9da576f0
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
cor
e
package
queu
e
import
(
"fmt"
...
...
@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/pkg/scheduler/util"
)
var
negPriority
,
lowPriority
,
midPriority
,
highPriority
,
veryHighPriority
=
int32
(
-
100
),
int32
(
0
),
int32
(
100
),
int32
(
1000
),
int32
(
10000
)
var
mediumPriority
=
(
lowPriority
+
highPriority
)
/
2
var
highPriorityPod
,
highPriNominatedPod
,
medPriorityPod
,
unschedulablePod
=
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
...
...
pkg/scheduler/scheduler.go
View file @
9da576f0
...
...
@@ -34,6 +34,7 @@ import (
schedulercache
"k8s.io/kubernetes/pkg/scheduler/cache"
"k8s.io/kubernetes/pkg/scheduler/core"
"k8s.io/kubernetes/pkg/scheduler/core/equivalence"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queue"
"k8s.io/kubernetes/pkg/scheduler/metrics"
"k8s.io/kubernetes/pkg/scheduler/util"
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
...
...
@@ -85,7 +86,7 @@ type Configurator interface {
// Exposed for testing
GetHardPodAffinitySymmetricWeight
()
int32
// Exposed for testing
MakeDefaultErrorFunc
(
backoff
*
util
.
PodBackoff
,
podQueue
cor
e
.
SchedulingQueue
)
func
(
pod
*
v1
.
Pod
,
err
error
)
MakeDefaultErrorFunc
(
backoff
*
util
.
PodBackoff
,
podQueue
internalqueu
e
.
SchedulingQueue
)
func
(
pod
*
v1
.
Pod
,
err
error
)
// Predicate related accessors to be exposed for use by k8s.io/autoscaler/cluster-autoscaler
GetPredicateMetadataProducer
()
(
algorithm
.
PredicateMetadataProducer
,
error
)
...
...
pkg/scheduler/testutil.go
View file @
9da576f0
...
...
@@ -25,7 +25,7 @@ import (
corelisters
"k8s.io/client-go/listers/core/v1"
"k8s.io/kubernetes/pkg/scheduler/algorithm"
schedulerapi
"k8s.io/kubernetes/pkg/scheduler/api"
"k8s.io/kubernetes/pkg/scheduler/cor
e"
internalqueue
"k8s.io/kubernetes/pkg/scheduler/internal/queu
e"
"k8s.io/kubernetes/pkg/scheduler/util"
)
...
...
@@ -50,7 +50,7 @@ func (fc *FakeConfigurator) GetHardPodAffinitySymmetricWeight() int32 {
}
// MakeDefaultErrorFunc is not implemented yet.
func
(
fc
*
FakeConfigurator
)
MakeDefaultErrorFunc
(
backoff
*
util
.
PodBackoff
,
podQueue
cor
e
.
SchedulingQueue
)
func
(
pod
*
v1
.
Pod
,
err
error
)
{
func
(
fc
*
FakeConfigurator
)
MakeDefaultErrorFunc
(
backoff
*
util
.
PodBackoff
,
podQueue
internalqueu
e
.
SchedulingQueue
)
func
(
pod
*
v1
.
Pod
,
err
error
)
{
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