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
c03b516d3a
Deal with auto-generated files.
...
Update bazel by hack/update-bazel.sh;
Update vendor by hack/update-vendor.sh;
2019-10-08 15:55:12 +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
Kubernetes Prow Robot
1f81255070
Merge pull request #83460 from ahg-g/ahg-first-predicate
...
[migration phase 1] Implement PodToleratesNodeTaint as a filter plugin
2019-10-05 14:07:11 -07:00
Abdullah Gharaibeh
66386fdf49
Added the first predicate as a filter plugin: PodToleratesNodeTaints.
2019-10-05 08:43:17 -04:00
Kubernetes Prow Robot
9522fb09f9
Merge pull request #83233 from hprateek43/heapPackageMovement
...
Move heap into its own internal package
2019-10-05 03:15:23 -07:00
Harsh Singh
f462a31e9b
Move heap into its own internal package
2019-10-05 01:24:36 +05:30
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
NickrenREN
315f34bb51
delete the pods from unschedulable queue only when Add succeeds
2019-07-28 11:24:11 +08: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
Wei Huang
29195faa69
supplemental logic to ensure nominatedPodMap.update() is still stateless
2019-05-17 07:44:05 -07:00
Wei Huang
115fe94b6f
scheduler: fix flaky test TestPreemptionRaces
...
In some cases, an Update event with no "NominatedNode" present is received right
after a node("NominatedNode") is reserved for this pod in memory.
If we go updating (delete and add) it, it actually un-reserves the node since
the newPod doesn't carry sped.status.nominatedNode.
In this case, during this time other low-priority pods have chances to take space which
was reserved for the nominatedPod.
2019-05-17 07:44:04 -07:00
draveness
d60bccc6a4
feat: implement "queue-sort" extension point for scheduling framework
2019-05-15 09:40:15 +08:00
draveness
6382595221
feat: move klog from AddUnschedulableIfNotPresent into the call site
2019-05-07 00:40:25 +08:00
xiuqiao
36effb4700
Remove FIFO scheduling queue and old pod backoff logic
2019-04-25 07:35:22 +08:00
Davanum Srinivas
7b8c9acc09
remove unused code
...
Change-Id: If821920ec8872e326b7d85437ad8d2620807799d
2019-04-19 08:36:31 -04:00
Kubernetes Prow Robot
a93f803f8e
Merge pull request #75501 from Huang-Wei/scheduler-metrics
...
scheduler: add metrics to record number of pending pods in different queues
2019-04-09 01:09:05 -07:00
Wei Huang
63c3a617cd
auto-generated files
2019-04-08 17:51:08 -07: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
goodluckbot
b92b0eb7c2
Change Mutex to RWMutex for pod backoff
2019-04-08 15:31:48 +08:00
Ted Yu
4b4c20be7c
Use read lock for PendingPods
2019-04-06 13:48:51 -07:00
Kubernetes Prow Robot
52ec2a0009
Merge pull request #75497 from goodluckbot/remove-backoff-util
...
Integrate backoff mechanism into the scheduling queue and remove the …
2019-04-05 18:06:41 -07:00
goodluckbot
151649df4c
Integrate backoff mechanism into the scheduling queue and remove the Backoff util
2019-04-06 00:15:00 +08:00
wangqingcan
8fd45d8300
clean up func podTimestamp
2019-03-27 11:05:19 +08: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
Wei Huang
02cdc24cd3
enforce unscheduable pod has proper chance to be retried
2019-01-22 09:23:51 +08:00
wangqingcan
28e6bbc175
acquire lock before operating unschedulablepodsmap
2019-01-18 04:24:18 +08:00
Kubernetes Prow Robot
d857790d36
Merge pull request #72558 from denkensk/add-goroutine-move-unschedulablepods-to-activeq
...
Move unschedulable pods to the active queue if they are not retried for more than 1 minute
2019-01-16 17:15:16 -08:00
wangqingcan
de8cfdcd79
add goroutine to move unschedulablepods to activeq regularly
2019-01-16 12:08:19 +08:00
Kubernetes Prow Robot
db60e4f20c
Merge pull request #72632 from danielqsj/sch_pod
...
Move getNextPod to closure
2019-01-08 19:22:19 -08:00
Kubernetes Prow Robot
5a708017e9
Merge pull request #72619 from everpeace/fix-starvation-by-sorting-queue-with-last-probe-time
...
change sort function of scheduling queue to avoid starvation when a lot of unscheduleable pods are in the queue
2019-01-07 20:24:24 -08:00
danielqsj
8dc1e83946
Add func comment for MakeNextPodFunc
2019-01-08 11:07:47 +08:00
danielqsj
554ad383e3
Move getNextPod to closure
2019-01-07 17:54:49 +08:00
Shingo Omura
22079a79d4
change sort function of scheduling queue to avoid starvation when unschedulable pods are in the queue
...
When starvation heppens:
- a lot of unschedulable pods exists in the head of queue
- because condition.LastTransitionTime is updated only when condition.Status changed
- (this means that once a pod is marked unschedulable, the field never updated until the pod successfuly scheduled.)
What was changed:
- condition.LastProbeTime is updated everytime when pod is determined
unschedulable.
- changed sort function so to use LastProbeTime to avoid starvation
described above
Consideration:
- This changes increases k8s API server load because it updates Pod.status whenever scheduler decides it as
unschedulable.
Signed-off-by: Shingo Omura <everpeace@gmail.com>
2019-01-07 11:05:45 +09:00
Kubernetes Prow Robot
222d7837a8
Merge pull request #72303 from cofyc/fix72013-cleanup-scheduler
...
Update comments to reflect current logic
2019-01-03 15:51:34 -08:00
Yecheng Fu
fa88bcc154
Update comments for PriorityQueue.
...
Log condition reason which is useful for debugging.
2019-01-03 09:25:05 +08:00
Bobby (Babak) Salamat
7044145920
Fix race in setting nominated node
2018-12-29 22:54:15 -08:00
Bobby (Babak) Salamat
48b6f75829
Add pods in the backoff queue to the list of pending pods
2018-12-20 17:28:23 -08:00
Jonathan Basseri
d27d28a44e
Flatten nominated pod logic in PriorityQueue.
...
This replaces deeply nested ifs & fors with early returns & continues.
2018-12-14 18:11:12 -08:00
Jonathan Basseri
fae4f69d36
Fix return value of PriorityQueue.Add.
...
This function was returning a non-nil error for the common, non-failure
case. The fix is to properly scope local error values and add early
returns.
2018-12-14 16:44:21 -08:00
mlmhl
2fe9b1438c
activate unschedulable pods only if the node became more schedulable
2018-12-10 09:48:23 +08:00
Gregory Haynes
5e4ccede4c
Reschedule with backoff
...
With the alpha scheduling queue we move pods from unschedulable to
active on certain events without a backoff. As a result we can cause
starvation issues if high priority pods are in the unschedulable queue.
Implement a backoff mechanism for pods being moved to active.
Closes #56721
2018-12-06 16:38:34 +00:00
Gregory Haynes
c821f2ed2f
Move scheduling Heap in to scheduler.core.utils
...
The Heap data structure is useful for our backoff system in addition to
scheduling queue. Move it to somewhere it can be consumed by both
systems and properly export needed names. Also adding unit tests
from client-go/tools/cache/heap.go.
2018-12-04 18:01:42 +00:00
Bobby (Babak) Salamat
36f8859fa0
autogenerated files
2018-11-27 17:08:58 -08:00
Bobby (Babak) Salamat
554acf2b38
Change sort function of the scheduling queue to avoid starvation
2018-11-27 17:08:40 -08:00
Wei Huang
b4fd11512a
ensure scheduler preemptor behaves in an efficient/correct path
...
- don't update nominatedMap cache when Pop() an element from activeQ
- instead, delete the nominated info from cache when it's "assumed"
- unit test behavior adjusted
- expose SchedulingQueue in factory.Config
2018-11-16 14:22:15 -08:00
Davanum Srinivas
954996e231
Move from glog to klog
...
- Move from the old github.com/golang/glog to k8s.io/klog
- klog as explicit InitFlags() so we add them as necessary
- we update the other repositories that we vendor that made a similar
change from glog to klog
* github.com/kubernetes/repo-infra
* k8s.io/gengo/
* k8s.io/kube-openapi/
* github.com/google/cadvisor
- Entirely remove all references to glog
- Fix some tests by explicit InitFlags in their init() methods
Change-Id: I92db545ff36fcec83afe98f550c9e630098b3135
2018-11-10 07:50:31 -05:00
Wei Huang
9da576f03c
move SchedulingQueue to pkg/scheduler/internal/queue
2018-09-28 11:51:02 -07:00
Wei Huang
2e7461c087
auto-generated files
2018-09-28 11:51:01 -07:00