46
46
## Summary
47
47
48
48
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
50
50
` v1beta2 ` and ` v1beta3 ` in 1.22 and 1.23 respectively.
51
51
52
52
## Motivation
@@ -59,7 +59,7 @@ changes such as:
59
59
align with the new scheduler framework.
60
60
- The introduction of scheduling profiles, that allow a scheduler to appear
61
61
as multiple schedulers under different configurations.
62
-
62
+
63
63
A configuration API allows cluster administrators to build, validate and
64
64
version their configurations in a more robust way than using command line flags.
65
65
@@ -86,7 +86,7 @@ For the most part, `kubescheduler.config.k8s.io/v1beta1` will be a copy of
86
86
- [ ] ` .profiles[*].plugins.unreserve ` will be removed.
87
87
- [ ] Embedded types of ` RequestedToCapacityRatio ` will include missing json tags
88
88
and will be decoded with a case-sensitive decoder.
89
-
89
+
90
90
The second iteration, ` kubescheduler.config.k8s.io/v1beta2 ` , includes the following changes:
91
91
- Plugin removals:
92
92
- ` NodeLabel ` (in favor of ` NodeAffinity ` )
@@ -102,10 +102,12 @@ The third iteration, `kubescheduler.config.k8s.io/v1beta3`, includes the followi
102
102
- ` InterPodAffinity ` to 2
103
103
- ` NodeAffinity ` to 2
104
104
- ` 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/ )
105
107
106
108
The main reason is that some plugins have "default" behavior without needing user inputs, whereas the above plugins are
107
109
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 ) .
109
111
### Risks and Mitigations
110
112
111
113
The major risk is around the removal of the ` unreserve ` extension point.
@@ -115,7 +117,7 @@ However, this is mitigated for the following reasons:
115
117
effectively requiring plugins to implement both functions.
116
118
- There are no in-tree Reserve or Unreserve plugins prior to 1.19.
117
119
The ` VolumeBinding ` plugin is now implementing both interfaces.
118
-
120
+
119
121
The caveat is that out-of-tree plugins that want to work 1.19 need to
120
122
updated to comply with the modified ` Reserve ` interface, otherwise scheduler
121
123
startup will fail. Plugins can choose to provide empty implementations.
181
183
* ** Are there any tests for feature enablement/disablement?**
182
184
183
185
The e2e framework does not currently support changing configuration files.
184
-
186
+
185
187
There are intensive unit tests for all the API versions.
186
188
187
189
### Rollout, Upgrade and Rollback Planning
@@ -205,16 +207,17 @@ N/A
205
207
206
208
* ** Is the rollout accompanied by any deprecations and/or removals of features,
207
209
APIs, fields of API types, flags, etc.?**
208
-
210
+
209
211
When ` v1beta1 ` was introduced:
210
212
- Configuration API ` kubescheduler.config.k8s.io/v1alpha2 ` is removed.
211
-
213
+
212
214
When ` v1beta2 ` was introduced:
213
215
- Some plugins are disabled. They continue to work in ` v1beta1 ` ; if used,
214
216
kube-scheduler logs a Warning.
215
217
216
218
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 ` .
218
221
219
222
### Monitoring requirements
220
223
228
231
229
232
* ** What are the SLIs (Service Level Indicators) an operator can use to
230
233
determine the health of the service?**
231
-
234
+
232
235
N/A.
233
236
234
237
* ** What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
@@ -259,22 +262,22 @@ N/A
259
262
260
263
* ** Will enabling / using this feature result in any new calls to cloud
261
264
provider?**
262
-
265
+
263
266
No.
264
267
265
268
* ** Will enabling / using this feature result in increasing size or count
266
269
of the existing API objects?**
267
-
270
+
268
271
No.
269
272
270
273
* ** Will enabling / using this feature result in increasing time taken by any
271
274
operations covered by [ existing SLIs/SLOs] [ ] ?**
272
-
275
+
273
276
No.
274
277
275
278
* ** Will enabling / using this feature result in non-negligible increase of
276
279
resource usage (CPU, RAM, disk, IO, ...) in any components?**
277
-
280
+
278
281
No.
279
282
280
283
### Troubleshooting
296
299
- 2020-05-08: KEP for beta graduation sent for review, including motivation,
297
300
proposal, risks, test plan and graduation criteria.
298
301
- 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