Abdullah Gharaibeh
a241c45dc7
move a number of scheduler metrics to STABLE
2021-11-10 12:51:17 -05:00
Reza Karimi
bb15f02039
issue#105861: making scheduler metrics stable
2021-11-03 15:34:50 +00:00
Kubernetes Prow Robot
6c45f6e32b
Merge pull request #105125 from BinacsLee/binacs-fix-scheQ-caculate-overflow
...
Scheduler: fix calculateBackoffDuration overflow in extreme data cases
2021-09-20 21:26:23 -07:00
BinacsLee
f277864aa5
Scheduler queue: fix calculateBackoffDuration overflow in extreme data cases
2021-09-21 09:42:52 +08:00
wojtekt
d9b08c611d
Migrate to k8s.io/utils/clock
2021-09-17 15:19:08 +02:00
boenn
1980b18c45
Solved the test problem and added update comment
2021-07-16 10:57:23 +08:00
Yecheng Fu
83ee392ed4
implement EnqueueExtensions interface in volumebinding
2021-07-03 08:25:06 +08:00
Wei Huang
36eaa11d50
cleanup usage of NewPodNominator
...
- replace NewPodNominator() with NewSafePodNominator()
- rename nominatedPodMap to nominator
2021-06-10 14:01:07 -07:00
Wei Huang
8e85a2b0c2
sched: fix a bug that a preemptor pod exists as a phantom
...
- SafePodNominator to resolve racing issue when dealing with nominated pod
2021-06-05 11:07:29 -07:00
Alexander Minbaev
8325c6b0da
got rid of ClusterEventReg with generating ClusterEvent objects on the fly
2021-04-14 13:38:46 -05:00
卢振兴10069964
5ddb1be59a
code cleanup for pkg/scheduler
2021-04-13 08:16:16 +08:00
Kubernetes Prow Robot
7cd73076a2
Merge pull request #100049 from Huang-Wei/basic-check-prior-to-enq
...
sched: support PreEnqueueChecks prior to moving Pods
2021-04-08 17:11:04 -07:00
Wei Huang
6384f397b4
sched: support PreEnqueueChecks prior to moving Pods
2021-03-11 12:31:50 -08:00
renyuquan
53ee08a40e
fix scheduler queue update logic
2021-03-10 15:48:18 +08:00
Abdullah Gharaibeh
c7fef196b6
Implements pod affinity NamespaceSelector feature
2021-03-04 07:30:24 -05:00
Wei Huang
6fdb1a8439
sched: add a benchmark test for MoveAllToActiveOrBackoffQueue
2021-03-03 07:20:08 -08:00
Wei Huang
f322019d7a
Store a cluster event to plugin map in SchedulerQueue
2021-03-03 07:20:07 -08:00
drfish
bc2df9de72
Use PodInfo instead of Pod for nominatedPods and QueuedPodInfo
2021-02-22 22:00:23 +08:00
tanjing2020
d0eecbd0a9
migrate scheduling_queue.go to structured logging
2021-02-18 09:56:31 +08:00
Ali
09b2e8f638
Move scheduler interface to pkg/scheduler/framework
2020-10-13 13:13:27 +11:00
Dave Chen
4b2c054e59
Enhancement on the testcase to cover more possibilities
...
This change enriches the testcase of `TestPriorityQueue_MoveAllToActiveOrBackoffQueue`
to cover the case that pods in the unschedulableQ could be moved to activeQ after the
backing off.
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-09-03 14:04:03 +08:00
Gaurav Singh
00f28747b3
TestSchedulingQueue_Close: Remove struct tests and the corresponding for loop
...
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
TestSchedulingQueue_Close: Remove for loop
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
remove the tests slice
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
Remove struct
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
Remove t.Run()
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
Add function name
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
Remove nested function
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
Replace expectedErr with wantErr
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
2020-06-11 11:19:14 -04:00
Wei Huang
bd184035c4
Extract logic related with scheduler nominatedPods to an interface
...
- rename `UpdateNominatedPodForNode` to `AddNominatedPod`
- promote `update` to `UpdateNominatedPod`
- anonymous lock in nominatedMap
- pass PodNominator as an option to NewFramework
2020-05-18 10:29:08 -07:00
Wei Huang
8c2a540cdc
Refine schedulerQueue test to avoid unneeded locks
...
- revert PR 88331
- remove createAndRunPriorityQueue()
- PriorityQueue is created and not run by default
- flushXYZ() is called on demand by manipulating FakeClock and Step()
2020-05-05 00:11:04 -07:00
Abdullah Gharaibeh
a151682887
Split scheduler's PodInfo into two types, PodInfo and PodQueueInfo
2020-04-21 21:45:20 -04:00
Aldo Culquicondor
c048858471
Support multiple scheduling profiles in a single scheduler
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-25 11:31:20 -05:00
skilxn-go
74718adf10
fix data races for other usage of Q
2020-02-20 00:50:13 +08:00
skilxn-go
7e33feec57
fix data races in scheduler unit tests
2020-02-19 22:27:40 +08:00
Kubernetes Prow Robot
bde718d100
Merge pull request #87948 from notpad/feature/pod_backoff
...
Remove PodBackoffMap
2020-02-14 13:11:28 -08:00
notpad
a4e4a99435
Remove PodBackoffMap
2020-02-14 08:31:07 +08:00
Aldo Culquicondor
60c972098c
Add defaults to pod affinity args
...
And remove pod affinity parameter from algorithm provider registry
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-03 14:58:28 -05:00
Aldo Culquicondor
9d2786c383
Fix back off when scheduling cycle is delayed
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-29 13:15:13 -05:00
Haosdent Huang
50d511d4b8
Deprecate scheduler's framework.plugins.RegistryArgs
2020-01-21 23:50:58 +08:00
Aldo Culquicondor
f53d7e55df
Move Snapshot from nodeinfo/snapshot to internal/cache
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-17 13:29:41 -05:00
Wei Huang
c712230ac1
Implement default queue sort logic as a scheduler plugin
2020-01-16 19:10:43 -08:00
Kubernetes Prow Robot
edad4bbfc8
Merge pull request #86940 from skilxn-go/master
...
Add VolumeBinder to FrameworkHandle interface
2020-01-09 03:01:45 -08:00
skilxn-go
5def91d778
Add VolumeBinder to FrameworkHandle interface
2020-01-09 10:29:35 +08:00
Abdullah Gharaibeh
f3c7a4c823
Update scheduler's RunFilterPlugins to return a plugin to status map
2020-01-08 16:44:51 -05:00
Abdullah Gharaibeh
f388534082
make scheduling queue start before the scheduler starts and stops after the scheduler stops
2019-12-02 14:35:09 -05:00
Alex Wang
83dce763ec
add event to remove and reject waitingpods
2019-11-05 22:04:44 +08:00
Jun Gong
b4c2b00690
Make sure score plugins are executed when no priority configured
2019-10-29 17:25:35 +08:00
Abdullah Gharaibeh
8ec56aeafb
Change all scheduler's Node and Pod list/lookups to be from the snapshot rather than the cache.
2019-10-25 14:24:55 -04:00
Abdullah Gharaibeh
373cf8c1b1
move nodeinfo/snapshot.go into its own package
2019-10-23 16:12:13 -04:00
Kubernetes Prow Robot
3719fcdffa
Merge pull request #82072 from draveness/feature/use-context-instead-of-channel
...
feat(scheduler): use context in scheduler package
2019-10-17 01:46:39 -07:00
Abdullah Gharaibeh
17a6a7914c
make sure filters are executed when no predicates configured
2019-10-16 21:27:57 -04:00
draveness
47a6c5b693
feat(scheduler): use context in the scheduler package
...
+ Use context instead of stopCh
+ Add context to the scheduling framework interface
2019-10-17 09:03:55 +08:00
Cong Liu
fc226e0670
Add incoming pod metrics to scheduler queue.
2019-10-16 14:26:16 -04:00
Kubernetes Prow Robot
c980000176
Merge pull request #83663 from draveness/feature/add-shared-informers-factory
...
feat(scheduler): expose SharedInformerFactory to the framework handle
2019-10-11 09:29:40 -07:00
Kubernetes Prow Robot
c1a735c642
Merge pull request #83601 from ahg-g/ahg-migration-priority
...
Implemented taints and tolerations priority function as a Score plugin
2019-10-11 00:05:50 -07:00
draveness
ee4dec65b5
feat(scheduler): expose SharedInformerFactory to the framework handle
2019-10-11 10:23:21 +08:00
Abdullah Gharaibeh
7429b0fe86
Implemented taints and tolerations priority function as a Score plugin
2019-10-10 17:49:40 -04:00
Cong Liu
085852160a
Add per-pod metrics for scheduler.
2019-10-10 16:58:21 -04:00
draveness
9646afb1f5
feat: add pod initial/max backoff duration to config API
2019-10-09 19:48:28 +08:00
RainbowMango
832a4fbe99
Refactor metrics test from kube-schedule queue.
2019-10-08 15:39:30 +08:00
draveness
ab3f55720b
feat(scheduler): expose kubernetes client in framework handle
2019-10-06 10:31:49 +08:00
Abdullah Gharaibeh
66386fdf49
Added the first predicate as a filter plugin: PodToleratesNodeTaints.
2019-10-05 08:43:17 -04:00
draveness
c73ff9749b
feat(scheduler): rename PluginContext to CycleState
2019-10-04 17:30:36 +08:00
notpad
fc55e74741
A consistent interface for plugin extended functionality
2019-10-01 23:59:48 +08:00
Kubernetes Prow Robot
0b4cccc9d1
Merge pull request #82912 from ahg-g/ahg-prefilter-update
...
An interface that allows pre-filter plugins to update their pre-calculated status
2019-09-25 11:06:40 -07:00
Kubernetes Prow Robot
8ad1aba7f5
Merge pull request #82465 from hprateek43/MoveGetPodPriority
...
Move GetPodPriority from /scheduler/util to /api/pod
2019-09-25 11:06:00 -07:00
Abdullah Gharaibeh
37b9e6d1ea
An interface that allows pre-filter plugins to update their pre-calculated.
...
This is needed to allow efficient preemption simulations: during preemption, we remove/add pods from each node before running the filter plugins again to evaluate whether removing/adding specific pods will allow the incoming pod to be scheduled on the node. Instead of calling prefilter again, we should allow the plugin to do incremental update to its pre-computed state.
2019-09-24 13:01:50 -04:00
Harsh Singh
6a9ef7f04f
Move GetPodPriority from /scheduler/util to /api/pod
2019-09-24 22:02:13 +05:30
Mark Janssen
345e528c86
Fix staticcheck failures for pkg/scheduler/...
2019-09-23 22:49:59 +02:00
Abdullah Gharaibeh
89f936f6ac
Modified the Filter interface to pass in nodeinfo instead of node name.
...
This is necessary to support preemption, which relies on passing modified nodeinfo objects to the filters to simulate evicting lower-priority pods.
2019-09-18 17:27:33 -04:00
Han Kang
8da448dbe3
migrate scheduler metrics endpoint to metrics stability framework
2019-08-28 03:40:43 -07:00
draveness
ffef11f768
feat(scheduler): move node info snapshot out of internal package
2019-08-23 22:32:16 +08:00
draveness
af2e0428f6
feat: use PreBind instead of Prebind in the scheduling framework
2019-08-23 02:09:19 +08:00
draveness
03f0934c80
feat: use PostBind instead of Postbind in the scheduling framework
2019-08-23 02:09:12 +08:00
draveness
f3816fb757
feat: use PreFilter instead of Prefilter in the scheduling framework
2019-08-23 02:09:00 +08:00
Cong Liu
e50a24d64c
Move RunNormalizeScorePlugins and ApplyScoreWeights into RunScorePlugins; Also add unit tests for RunScorePlugins.
2019-08-20 13:18:32 -04:00
Kubernetes Prow Robot
8c6c94bad2
Merge pull request #81148 from wgliang/bugfix/scheduler-heap-race
...
Fix two race issues in schedule_queue
2019-08-14 16:52:36 -07:00
Kubernetes Prow Robot
1906650d92
Merge pull request #80901 from draveness/feature/use-map-instead-of-array
...
feat: use named array instead of array in normalizing score
2019-08-14 03:28:25 -07:00
Guoliang Wang
ca61b79996
Fix two race issues in scheduling_queue_test
2019-08-09 07:50:02 +08:00
draveness
aa5f9fda52
feat: use named array instead of score array in normalizing score
2019-08-08 08:19:49 +08:00
Wei Huang
139d9a1b1e
Fixed a racing issue in scheduler UT
...
pkg/scheduler/internal/queue/scheduling_queue_test.go#TestPriorityQueue_AddUnschedulableIfNotPresent_Backoff has racing issue.
2019-08-06 12:04:21 -07:00
draveness
feb64858aa
feat: implement "post-filter" extension point for scheduling framework
2019-08-02 10:12:54 +08:00
Cong Liu
34373662d3
Add NormalizeScore extension point for scheduler framework.
2019-07-30 20:02:13 -04:00
Youbing Li
7f9dd949e0
The implementation of Filter extension for the new framework
2019-07-17 03:28:30 -04:00
Abdullah Gharaibeh
c54c4d1962
Score plugin for the scheduling framework.
2019-07-16 09:38:37 -04:00
Chun Chen
3bb1a081ab
Revert "Revert "Add Bind extension point of the scheduling framework""
...
This reverts commit b8950dab50
.
2019-07-15 23:36:02 +08:00
draveness
b8950dab50
Revert "Add Bind extension point of the scheduling framework"
2019-06-22 22:52:57 +08:00
Chun Chen
b339c0a8bf
Add Bind extension point of the scheduling framework
2019-06-20 15:56:01 +08:00
Kubernetes Prow Robot
3b146147e8
Merge pull request #78746 from danwinship/test-name-typo
...
Fix spelling of test name
2019-06-14 15:25:56 -07:00
Abdullah Gharaibeh
a61a437ef2
prefilter extension point implementation.
2019-06-10 17:01:50 -04:00
Dan Winship
78ea7b7fd8
Fix spelling of test name
2019-06-05 16:04:22 -04:00
Guoliang Wang
20f9c9940e
Add Post-bind extension point to the scheduling framework
2019-05-19 18:12:16 +08:00
draveness
d60bccc6a4
feat: implement "queue-sort" extension point for scheduling framework
2019-05-15 09:40:15 +08:00
xiuqiao
36effb4700
Remove FIFO scheduling queue and old pod backoff logic
2019-04-25 07:35:22 +08:00
Wei Huang
54218a7988
scheduler: add unit test for pending pods metrics
2019-04-08 17:51:08 -07:00
Wei Huang
0806ef2c11
scheduler: refactor testing structures for better reusability
2019-04-08 17:51:08 -07:00
Wei Huang
7afbd68730
add metrics to record number of pending pods in different queues
2019-04-08 17:51:07 -07:00
Wei Huang
2b554b4286
scheduler: cleanup unused parameters in unschedulableQ
2019-03-13 11:54:16 -07:00
Kubernetes Prow Robot
f6d05d6315
Merge pull request #74611 from denkensk/fix-unable-find-backoff-value
...
fix the flake in scheduling_queue_test
2019-02-28 16:06:57 -08:00
wangqingcan
471679f8d2
fix the flake in scheduling_queue_test
2019-02-28 07:23:27 +08:00
Jonathan Basseri
df4d65d2e1
Ensure that pods obey backoff timers.
...
The function AddUnschedulableIfNotPresent is responsible for
initializing or updating backoff timers for pods that could not be
scheduled. The helper function backoffPod does that work, but was not
being called in all cases.
This moves that call to be (mostly) unconditional, while cleaning up
comments and error handling.
2019-02-26 10:21:18 -08:00
wangqingcan
ea9e1a4118
not updae timestamp for each scheduling attempt
2019-02-22 09:46:18 +08:00
Bobby (Babak) Salamat
ec0739bd03
Fix races in scheduling queue tests
2019-02-11 16:38:26 -08:00
Yecheng Fu
ba47beffd2
Fix weakness of current receivedMoveRequest
...
- add incremental scheduling cycle
- instead of set a flag on move reqeust, we cache current scheduling
cycle in moveRequestCycle
- when unschedulable pods are added back, compare its cycle with
moveRequestCycle to decide whether it should be added into active queue
or not
2019-01-30 10:13:49 +08:00
wangqingcan
28e6bbc175
acquire lock before operating unschedulablepodsmap
2019-01-18 04:24:18 +08:00
wangqingcan
de8cfdcd79
add goroutine to move unschedulablepods to activeq regularly
2019-01-16 12:08:19 +08:00