Skip to content

Commit 533a49d

Browse files
Introduce v1beta3 api
1 parent b01bca9 commit 533a49d

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

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

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
The kube-scheduler configuration API `kubescheduler.config.k8s.io` was in alpha
4949
for several releases. We graduated it to beta in 1.19 as `v1beta1`. In 1.22,
50-
we introduced `v1beta2`.
50+
we introduced `v1beta2`. In 1.23, we plan to introduce `v1beta3`
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/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,14 @@ 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 weights of the following user configurable plugins.
102+
- `InterPodAffinity` to 2
103+
- `NodeAffinity` to 2
104+
- `TaintToleration` to 3 as the usage of node tainting to group nodes in the cluster is increasing for many user workloads
105+
106+
The main reason for increasing the weights of the above plugins is conflict with other plugins like image locality, utilization.
107+
More information can be found [here](https://github.com/kubernetes/kubernetes/issues/88174)
100108
### Risks and Mitigations
101109

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

125134
### Graduation Criteria
126135

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

137146
### Upgrade/Downgrade Strategy
138147

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

142151
The default configurations preserve the behavior of the scheduler.
@@ -172,7 +181,7 @@ N/A
172181

173182
The e2e framework does not currently support changing configuration files.
174183

175-
There are intensive unit tests for both API versions.
184+
There are intensive unit tests for all the API versions.
176185

177186
### Rollout, Upgrade and Rollback Planning
178187

@@ -203,6 +212,9 @@ N/A
203212
- Some plugins are disabled. They continue to work in `v1beta1`; if used,
204213
kube-scheduler logs a Warning.
205214

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

208220
* **How can an operator determine if the feature is in use by workloads?**
@@ -283,4 +295,5 @@ N/A
283295
- 2020-05-08: KEP for beta graduation sent for review, including motivation,
284296
proposal, risks, test plan and graduation criteria.
285297
- 2020-05-13: KEP updated to remove v1alpha2 support.
286-
- 2021-07-08: Introducing `v1beta2`
298+
- 2021-07-08: Introducing `v1beta2`
299+
- 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)