Skip to content

Commit 49cd7f0

Browse files
authored
Merge pull request kubernetes#2921 from kerthcet/feature/remove-scheduler-policy-config
KEP-2901: remove scheduler policy and cc v1beta1
2 parents 4dd81f5 + c000ab4 commit 49cd7f0

File tree

1 file changed

+20
-16
lines changed
  • keps/sig-scheduling/785-scheduler-component-config-api

1 file changed

+20
-16
lines changed

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

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
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`. We introduced
49+
for several releases. We graduated it to beta in 1.19 as `v1beta1`. We introduced
5050
`v1beta2` and `v1beta3` in 1.22 and 1.23 respectively.
5151

5252
## Motivation
@@ -59,7 +59,7 @@ changes such as:
5959
align with the new scheduler framework.
6060
- The introduction of scheduling profiles, that allow a scheduler to appear
6161
as multiple schedulers under different configurations.
62-
62+
6363
A configuration API allows cluster administrators to build, validate and
6464
version their configurations in a more robust way than using command line flags.
6565

@@ -86,7 +86,7 @@ For the most part, `kubescheduler.config.k8s.io/v1beta1` will be a copy of
8686
- [ ] `.profiles[*].plugins.unreserve` will be removed.
8787
- [ ] Embedded types of `RequestedToCapacityRatio` will include missing json tags
8888
and will be decoded with a case-sensitive decoder.
89-
89+
9090
The second iteration, `kubescheduler.config.k8s.io/v1beta2`, includes the following changes:
9191
- Plugin removals:
9292
- `NodeLabel` (in favor of `NodeAffinity`)
@@ -102,10 +102,12 @@ The third iteration, `kubescheduler.config.k8s.io/v1beta3`, includes the followi
102102
- `InterPodAffinity` to 2
103103
- `NodeAffinity` to 2
104104
- `TaintToleration` to 3 as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice
105+
- Remove `v1beta1`
106+
- Remove the legacy [policy config API](https://kubernetes.io/docs/reference/scheduling/policies/)
105107

106108
The main reason is that some plugins have "default" behavior without needing user inputs, whereas the above plugins are
107109
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).
110+
More information on the discussion can be found [here](https://github.com/kubernetes/kubernetes/issues/88174).
109111
### Risks and Mitigations
110112

111113
The major risk is around the removal of the `unreserve` extension point.
@@ -115,7 +117,7 @@ However, this is mitigated for the following reasons:
115117
effectively requiring plugins to implement both functions.
116118
- There are no in-tree Reserve or Unreserve plugins prior to 1.19.
117119
The `VolumeBinding` plugin is now implementing both interfaces.
118-
120+
119121
The caveat is that out-of-tree plugins that want to work 1.19 need to
120122
updated to comply with the modified `Reserve` interface, otherwise scheduler
121123
startup will fail. Plugins can choose to provide empty implementations.
@@ -181,7 +183,7 @@ N/A
181183
* **Are there any tests for feature enablement/disablement?**
182184

183185
The e2e framework does not currently support changing configuration files.
184-
186+
185187
There are intensive unit tests for all the API versions.
186188

187189
### Rollout, Upgrade and Rollback Planning
@@ -205,16 +207,17 @@ N/A
205207

206208
* **Is the rollout accompanied by any deprecations and/or removals of features,
207209
APIs, fields of API types, flags, etc.?**
208-
210+
209211
When `v1beta1` was introduced:
210212
- Configuration API `kubescheduler.config.k8s.io/v1alpha2` is removed.
211-
213+
212214
When `v1beta2` was introduced:
213215
- Some plugins are disabled. They continue to work in `v1beta1`; if used,
214216
kube-scheduler logs a Warning.
215217

216218
When `v1beta3` gets introduced:
217-
- No changes to plugins enabled by default. Only their weights would change.
219+
- No changes to plugins enabled by default. Only their weights would change.
220+
- Remove `v1beta1`.
218221

219222
### Monitoring requirements
220223

@@ -228,7 +231,7 @@ N/A
228231

229232
* **What are the SLIs (Service Level Indicators) an operator can use to
230233
determine the health of the service?**
231-
234+
232235
N/A.
233236

234237
* **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
@@ -259,22 +262,22 @@ N/A
259262

260263
* **Will enabling / using this feature result in any new calls to cloud
261264
provider?**
262-
265+
263266
No.
264267

265268
* **Will enabling / using this feature result in increasing size or count
266269
of the existing API objects?**
267-
270+
268271
No.
269272

270273
* **Will enabling / using this feature result in increasing time taken by any
271274
operations covered by [existing SLIs/SLOs][]?**
272-
275+
273276
No.
274277

275278
* **Will enabling / using this feature result in non-negligible increase of
276279
resource usage (CPU, RAM, disk, IO, ...) in any components?**
277-
280+
278281
No.
279282

280283
### Troubleshooting
@@ -296,5 +299,6 @@ N/A
296299
- 2020-05-08: KEP for beta graduation sent for review, including motivation,
297300
proposal, risks, test plan and graduation criteria.
298301
- 2020-05-13: KEP updated to remove v1alpha2 support.
299-
- 2021-07-08: Introducing `v1beta2`
300-
- 2021-08-06: Introducing `v1beta3`
302+
- 2021-07-08: Introducing `v1beta2`.
303+
- 2021-08-06: Introducing `v1beta3`.
304+
- 2021-09-01: Remove `v1beta1` and the legacy policy config API.

0 commit comments

Comments
 (0)