Skip to content

Commit bf1ebdf

Browse files
authored
Merge pull request kubernetes#2850 from ravisantoshgudimetla/scheduling-v1beta3
Introduce v1beta3 API for scheduler ComponentConfig
2 parents 1fd25ff + 681e7a6 commit bf1ebdf

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

keps/sig-scheduling/785-scheduler-component-config-api/README.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
## Summary
4747

4848
The kube-scheduler configuration API `kubescheduler.config.k8s.io` was in alpha
49-
for several releases. We graduated it to beta in 1.19 as `v1beta1`. In 1.22,
50-
we introduced `v1beta2`.
49+
for several releases. We graduated it to beta in 1.19 as `v1beta1`. We introduced
50+
`v1beta2` and `v1beta3` in 1.22 and 1.23 respectively.
5151

5252
## Motivation
5353

@@ -70,7 +70,7 @@ usage.
7070

7171
- Introduce `kubescheduler.config.k8s.io/v1beta1` as a copy of
7272
`kubescheduler.config.k8s.io/v1alpha2` with minimal cleanup changes.
73-
- Iterate the API in `kubescheduler.config.k8s.io/v1beta2`, based on learnings.
73+
- Iterate the API in `kubescheduler.config.k8s.io/v1beta2`, `kubescheduler.config.k8s.io/v1beta3` based on learnings.
7474
- Use the newly created API objects to build the default configuration for kube-scheduler.
7575

7676
### Non-Goals
@@ -97,6 +97,15 @@ The second iteration, `kubescheduler.config.k8s.io/v1beta2`, includes the follow
9797
- `RequestedToCapacityRatio` (in favor of `NodeResourcesFit` plugin with a `RequestedToCapacityRatio` scoring strategy)
9898
- Cleanup of validation hacks.
9999

100+
The third iteration, `kubescheduler.config.k8s.io/v1beta3`, includes the following changes:
101+
- Change the weight of plugins that can be influenced by end users through the Pod specs.
102+
- `InterPodAffinity` to 2
103+
- `NodeAffinity` to 2
104+
- `TaintToleration` to 3 as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice
105+
106+
The main reason is that some plugins have "default" behavior without needing user inputs, whereas the above plugins are
107+
about user preferences, so should have more influence while making scheduling decisions.
108+
More information on the discussion can be found [here](https://github.com/kubernetes/kubernetes/issues/88174).
100109
### Risks and Mitigations
101110

102111
The major risk is around the removal of the `unreserve` extension point.
@@ -121,6 +130,7 @@ This will be documented in https://kubernetes.io/docs/reference/scheduling/profi
121130
- [x] Tests for `RequestedToCapacityRatioArgs` that: (1) fail to pass with
122131
bad casing and (2) get encoded with lower case.
123132
- [x] Tests for parsing, conversion, defaulting and validation.
133+
- [] Tests which assert predictability of node assignment with increased weights.
124134

125135
### Graduation Criteria
126136

@@ -136,7 +146,7 @@ This will be documented in https://kubernetes.io/docs/reference/scheduling/profi
136146

137147
### Upgrade/Downgrade Strategy
138148

139-
Users are able to use the `v1beta1` or `v1beta2` APIs. Since they only affect
149+
Users are able to use the `v1beta1`, `v1beta2` or `v1beta3` API. Since they only affect
140150
the configuration of the scheduler, there is no impact to running workloads.
141151

142152
The default configurations preserve the behavior of the scheduler.
@@ -172,7 +182,7 @@ N/A
172182

173183
The e2e framework does not currently support changing configuration files.
174184

175-
There are intensive unit tests for both API versions.
185+
There are intensive unit tests for all the API versions.
176186

177187
### Rollout, Upgrade and Rollback Planning
178188

@@ -203,6 +213,9 @@ N/A
203213
- Some plugins are disabled. They continue to work in `v1beta1`; if used,
204214
kube-scheduler logs a Warning.
205215

216+
When `v1beta3` gets introduced:
217+
- No changes to plugins enabled by default. Only their weights would change.
218+
206219
### Monitoring requirements
207220

208221
* **How can an operator determine if the feature is in use by workloads?**
@@ -283,4 +296,5 @@ N/A
283296
- 2020-05-08: KEP for beta graduation sent for review, including motivation,
284297
proposal, risks, test plan and graduation criteria.
285298
- 2020-05-13: KEP updated to remove v1alpha2 support.
286-
- 2021-07-08: Introducing `v1beta2`
299+
- 2021-07-08: Introducing `v1beta2`
300+
- 2021-08-06: Introducing `v1beta3`

keps/sig-scheduling/785-scheduler-component-config-api/kep.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ see-also:
1818
- "/keps/sig-scheduling/1451-multi-scheduling-profiles"
1919
- "/keps/sig-scheduling/2458-node-resource-score-strategy"
2020
stage: beta
21-
latest-milestone: "v1.22"
21+
latest-milestone: "v1.23"
2222
milestone:
2323
beta: "v1.19"

0 commit comments

Comments
 (0)