Adhityaa Chandrasekar
1b223b861a
scheduler: run Unreserve if Reserve fails
...
If a reserve plugin's Reserve method returns an error, there could be
previously allocated resources from successfully completed reserve
plugins that must be unallocated by the corresponding Unreserve
operation. Since Unreserve operations are idempotent, this patch runs
the Unreserve operation of ALL reserve plugins when a Reserve operation
fails.
2020-06-26 20:41:33 +00:00
Adhityaa Chandrasekar
ec83143342
scheduler: merge Reserve and Unreserve plugins
...
Previously, separate interfaces were defined for Reserve and Unreserve
plugins. However, in nearly all cases, a plugin that allocates a
resource using Reserve will likely want to register itself for Unreserve
as well in order to free the allocated resource at the end of a failed
scheduling/binding cycle. Having separate plugins for Reserve and
Unreserve also adds unnecessary config toil. To that end, this patch
aims to merge the two plugins into a single interface called a
ReservePlugin that requires implementing both the Reserve and Unreserve
methods.
2020-06-24 21:10:35 +00:00
Wei Huang
d99cc01646
Register and enable defaultpreemption plugin
...
- Enable defaultpreemption as a PostFilter plugin
- Remote legacy hard-coded preemption logic
2020-06-22 17:22:27 -07:00
Wei Huang
7dfabd7af6
Expose EventRecorder to scheduler FrameworkHandle
2020-06-10 18:27:21 -07:00
Wei Huang
69b9ba6012
Introduce PostFilter extension point
2020-06-05 13:23:45 -07:00
Wei Huang
59eff29d22
- Add Extenders() and PluginsRunner interface to PreemptHandle
...
- Make some private functions stateless
- make addNominatedPods() not dependent on genericScheduler
- make addNominatedPods() not dependent on genericScheduler
- make selectVictimsOnNode() not dependent on genericScheduler
- make selectNodesForPreemption() not dependent on genericScheduler
2020-05-26 10:00:45 -07:00
Kubernetes Prow Robot
f7a6e9e2f1
Merge pull request #91175 from Huang-Wei/volume-binding-leftover
...
Cleanup volume binding leftover
2020-05-20 19:41:10 -07:00
Wei Huang
f4b726237a
Add function NominatedPodsForNode to PodNominator interface.
...
- replace SchedulingQueue with PodNominator in genericScheduler.
2020-05-20 14:05:18 -07:00
Wei Huang
b6d5a3328a
cleanup volume binding leftover
2020-05-20 10:30:22 -07: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
Abdullah Gharaibeh
a151682887
Split scheduler's PodInfo into two types, PodInfo and PodQueueInfo
2020-04-21 21:45:20 -04:00
Abdullah Gharaibeh
b8ddd00312
scheduler's NodeInfo tracks PodInfos instead of Pods
2020-04-08 17:53:20 -04:00
Abdullah Gharaibeh
a5d8172715
move nodeinfo type to framework pkg
2020-04-07 10:25:24 -04:00
Abdullah Gharaibeh
ed3fe054df
move scheduler nodeinfo to pkg/scheduler/types
2020-03-31 21:02:09 -04:00
louisgong
c6b94e4606
refactor volume binder
2020-02-29 12:03:39 +08:00
Mateusz
d221d82eaf
run permit plugins in the scheduling cycle
2020-02-18 10:04:23 -08:00
skilxn-go
8fd0d8028f
Remove FilteredNodesStatuses
argument from PreScore
interface
2020-02-15 13:53:04 +08:00
skilxn-go
f5b7e3cca3
Rename PostFilter
plugin to PreScore
2020-02-12 23:25:08 +08:00
Wei Huang
b8e2b0d990
Refine WaitingPod interface
2020-02-07 16:32:48 -08:00
Aldo Culquicondor
4a5ab84dcc
Move default binding to a plugin
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-22 14:13:33 -05: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
Kubernetes Prow Robot
06fb3eb582
Merge pull request #86496 from ahg-g/ahg1-check
...
Support AlwaysCheckAllPredicates in the scheduler framework.
2019-12-23 09:53:33 -08:00
Abdullah Gharaibeh
eeb8a5b728
Added back the flag to trigger examining all Filters in the scheduler.
2019-12-21 05:17:23 -05:00
Wei Huang
3e65b3793f
Cleanup failedPredicateMap from generic_scheduler.go
2019-12-20 15:18:15 -08:00
Wei Huang
a136108d2b
Return all predicate failures instead of the first one
2019-12-08 21:10:40 -08:00
Abdullah Gharaibeh
6b4bd87ba3
Remove Framework dependency on nodeinfo snapshot
2019-11-06 08:37:57 -05:00
Alex Wang
83dce763ec
add event to remove and reject waitingpods
2019-11-05 22:04:44 +08:00
Wei Huang
c649666b4a
manual API changes and code refactoring
...
- add Policy API to pkg/scheduler/apis/config and staging/src/k8s.io/kube-scheduler/config/v1
- dual-register Policy as apiGroup "v1" and "kubescheduler.config.k8s.io
- move/merge pkg/scheduler/api to pkg/scheduler/apis/config/...
- alias schedulerapi to pkg/scheduler/apis/config
- alias legacyapi to pkg/scheduler/api
- eliminate latest.Codec; use scheme.Codecs instead
- unit tests to verify Policy YAML with version "v1" or "kubescheduler.config.k8s.io/v1" can be loaded properly
- update api/api-rules/violation_exceptions.list
2019-11-01 14:24:36 -07:00
Abdullah Gharaibeh
c6baa263a3
Update priorities to use SharedLister instead of using the snapshot directly
2019-10-29 16:22:00 -04: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
Jun Gong
38b7668bb3
Refactor scheduler's framework permit API
2019-10-19 16:22:39 +08: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
Kubernetes Prow Robot
1552ba6b00
Merge pull request #83569 from liu-cong/framework-metrics
...
Add metrics for scheduler framework.
2019-10-15 23:05:28 -07:00
Cong Liu
da30a00f9a
Add metrics for scheduler framework.
2019-10-14 20:26:03 -04:00
Kubernetes Prow Robot
1e5a9f3ff4
Merge pull request #83522 from draveness/feature/expand-node-score-range
...
feat(scheduler): expand node score range to [0, 100]
2019-10-11 16:20:38 -07: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
draveness
1f52bd80d1
feat(scheduler): expand node score range to [0, 100]
2019-10-11 23:43:09 +08: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
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
Abdullah Gharaibeh
043166f54b
Modified the name of the Extensions method in the scheduler's framework.
2019-10-04 15:53:06 -04:00