@@ -38,14 +38,14 @@ Kubernetes?**
38
38
**Kensei**: Hi, thanks for the opportunity! I’m Kensei Nakada
39
39
([@sanposhiho](https://github.com/sanposhiho/)), a software engineer at
40
40
[Tetrate.io](https://tetrate.io/). I have been contributing to Kubernetes in my free time for more
41
- than 3 years, and now I’m an approver of SIG- Scheduling in Kubernetes. Also, I’m a founder/owner of
41
+ than 3 years, and now I’m an approver of SIG Scheduling in Kubernetes. Also, I’m a founder/owner of
42
42
two SIG subprojects,
43
43
[kube-scheduler-simulator](https://github.com/kubernetes-sigs/kube-scheduler-simulator) and
44
44
[kube-scheduler-wasm-extension](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension).
45
45
-->
46
46
** Kensei** : 嗨,感谢你给我这个机会!我是 Kensei Nakada
47
47
([ @sanposhiho ] ( https://github.com/sanposhiho/ ) ),是来自 [ Tetrate.io] ( https://tetrate.io/ ) 的一名软件工程师。
48
- 我在业余时间为 Kubernetes 贡献了超过 3 年的时间,现在我是 Kubernetes 中 SIG- Scheduling 的一名 Approver。
48
+ 我在业余时间为 Kubernetes 贡献了超过 3 年的时间,现在我是 Kubernetes 中 SIG Scheduling 的一名 Approver。
49
49
同时,我还是两个 SIG 子项目的创始人/负责人:
50
50
[ kube-scheduler-simulator] ( https://github.com/kubernetes-sigs/kube-scheduler-simulator ) 和
51
51
[ kube-scheduler-wasm-extension] ( https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension ) 。
@@ -59,7 +59,7 @@ brief overview of SIG Scheduling and explain its role within the Kubernetes ecos
59
59
**KN**: As the name implies, our responsibility is to enhance scheduling within
60
60
Kubernetes. Specifically, we develop the components that determine which Node is the best place for
61
61
each Pod. In Kubernetes, our main focus is on maintaining the
62
- [kube-scheduler](https://kubernetes.io /docs/concepts/scheduling-eviction/kube-scheduler/), along
62
+ [kube-scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/), along
63
63
with other scheduling-related components as part of our SIG subprojects.
64
64
-->
65
65
## 关于 SIG Scheduling
@@ -69,15 +69,15 @@ with other scheduling-related components as part of our SIG subprojects.
69
69
** KN** : 正如名字所示,我们的责任是增强 Kubernetes 中的调度特性。
70
70
具体来说,我们开发了一些组件,将每个 Pod 调度到最合适的 Node。
71
71
在 Kubernetes 中,我们的主要关注点是维护
72
- [ kube-scheduler] ( https://kubernetes.io /docs/concepts/scheduling-eviction/kube-scheduler/) ,
72
+ [ kube-scheduler] ( /zh-cn /docs/concepts/scheduling-eviction/kube-scheduler/) ,
73
73
以及其他调度相关的组件,这些组件是 SIG Scheduling 的子项目。
74
74
75
75
<!--
76
76
**AP: I see, got it! That makes me curious--what recent innovations or developments has SIG
77
77
Scheduling introduced to Kubernetes scheduling?**
78
78
79
- **KN**: From a feature perspective, there have been [several
80
- enhancements](https://kubernetes.io /blog/2023/04/17/fine-grained-pod-topology-spread-features-beta/)
79
+ **KN**: From a feature perspective, there have been
80
+ [several enhancements](/blog/2023/04/17/fine-grained-pod-topology-spread-features-beta/)
81
81
to `PodTopologySpread` recently. `PodTopologySpread` is a relatively new feature in the scheduler,
82
82
and we are still in the process of gathering feedback and making improvements.
83
83
-->
@@ -104,7 +104,7 @@ reducing the likelihood of wasting scheduling cycles.
104
104
**A: That sounds interesting! Are there any other interesting topics or projects you are currently
105
105
working on within SIG Scheduling?**
106
106
107
- **KN**: I’m leading the development of `QueueingHint` which I just shared. Given that it’s a big new
107
+ **KN**: I’m leading the development of `QueueingHint` which I just shared. Given that it’s a big new
108
108
challenge for us, we’ve been facing many unexpected challenges, especially around the scalability,
109
109
and we’re trying to solve each of them to eventually enable it by default.
110
110
-->
@@ -115,15 +115,14 @@ and we’re trying to solve each of them to eventually enable it by default.
115
115
116
116
<!--
117
117
And also, I believe
118
- [kube-scheduler-wasm-extention ](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension)
119
- (SIG sub project ) that I started last year would be interesting to many people. Kubernetes has
118
+ [kube-scheduler-wasm-extension ](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension)
119
+ (a SIG subproject ) that I started last year would be interesting to many people. Kubernetes has
120
120
various extensions from many components. Traditionally, extensions are provided via webhooks
121
121
([extender](https://github.com/kubernetes/design-proposals-archive/blob/main/scheduling/scheduler_extender.md)
122
- in the scheduler) or Go SDK ([Scheduling
123
- Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/) in the
124
- scheduler). However, these come with drawbacks - performance issues with webhooks and the need to
122
+ in the scheduler) or Go SDK ([Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/)
123
+ in the scheduler). However, these come with drawbacks - performance issues with webhooks and the need to
125
124
rebuild and replace schedulers with Go SDK, posing difficulties for those seeking to extend the
126
- scheduler but lacking familiarity with it. The project is trying to introduce a new solution to
125
+ scheduler but lacking familiarity with it. The project is trying to introduce a new solution to
127
126
this general challenge - a [WebAssembly](https://webassembly.org/) based extension. Wasm allows
128
127
users to build plugins easily, without worrying about recompiling or replacing their scheduler, and
129
128
sidestepping performance concerns.
@@ -138,32 +137,32 @@ Go SDK(调度器中的[调度框架](/zh-cn/docs/concepts/scheduling-eviction/
138
137
Wasm 允许用户轻松构建插件,而无需担心重新编译或替换调度器,还能规避性能问题。
139
138
140
139
<!--
141
- Through this project, sig-scheduling has been learning valuable insights about WebAssembly's
140
+ Through this project, SIG Scheduling has been learning valuable insights about WebAssembly's
142
141
interaction with large Kubernetes objects. And I believe the experience that we’re gaining should be
143
- useful broadly within the community, beyond sig-scheduling .
142
+ useful broadly within the community, beyond SIG Scheduling .
144
143
145
- **A: Definitely! Now, there are currently 8 subprojects inside SIG Scheduling. Would you like to
144
+ **A: Definitely! Now, there are 8 subprojects inside SIG Scheduling. Would you like to
146
145
talk about them? Are there some interesting contributions by those teams you want to highlight?**
147
146
148
- **KN**: Let me pick up three sub projects; Kueue, KWOK and descheduler.
147
+ **KN**: Let me pick up three subprojects: Kueue, KWOK and descheduler.
149
148
-->
150
- 通过这个项目,sig-scheduling 正在积累 WebAssembly 与大型 Kubernetes 对象交互的宝贵洞察。
151
- 我相信我们所获得的经验应该对整个社区都很有用,而不仅限于 sig-scheduling 的范围。
149
+ 通过这个项目,SIG Scheduling 正在积累 WebAssembly 与大型 Kubernetes 对象交互的宝贵洞察。
150
+ 我相信我们所获得的经验应该对整个社区都很有用,而不仅限于 SIG Scheduling 的范围。
152
151
153
152
** A: 当然!目前 SIG Scheduling 有 8 个子项目。你想谈谈它们吗?有没有一些你想强调的有趣贡献?**
154
153
155
154
** KN** : 让我挑选三个子项目:Kueue、KWOK 和 Descheduler。
156
155
157
156
<!--
158
- [Kueue](https://github.com/kubernetes-sigs/kueue):
157
+ [Kueue](https://github.com/kubernetes-sigs/kueue)
159
158
: Recently, many people have been trying to manage batch workloads with Kubernetes, and in 2022,
160
- Kubernetes community founded
161
- [WG-Batch](https://github.com/kubernetes/community/blob/master/wg-batch/README.md) for better
162
- support for such batch workloads in Kubernetes. [Kueue](https://github.com/kubernetes-sigs/kueue)
163
- is a project that takes a crucial role for it. It’s a job queueing controller, deciding when a job
164
- should wait, when a job should be admitted to start, and when a job should be preempted. Kueue aims
165
- to be installed on a vanilla Kubernetes cluster while cooperating with existing matured controllers
166
- (scheduler, cluster-autoscaler, kube-controller-manager, etc).
159
+ Kubernetes community founded
160
+ [WG-Batch](https://github.com/kubernetes/community/blob/master/wg-batch/README.md) for better
161
+ support for such batch workloads in Kubernetes. [Kueue](https://github.com/kubernetes-sigs/kueue)
162
+ is a project that takes a crucial role for it. It’s a job queueing controller, deciding when a job
163
+ should wait, when a job should be admitted to start, and when a job should be preempted. Kueue aims
164
+ to be installed on a vanilla Kubernetes cluster while cooperating with existing matured controllers
165
+ (scheduler, cluster-autoscaler, kube-controller-manager, etc).
167
166
-->
168
167
[ Kueue] ( https://github.com/kubernetes-sigs/kueue ) :
169
168
: 最近,许多人尝试使用 Kubernetes 管理批处理工作负载,2022 年,Kubernetes 社区成立了
@@ -175,18 +174,18 @@ to be installed on a vanilla Kubernetes cluster while cooperating with existing
175
174
同时与现有的成熟控制器(调度器、cluster-autoscaler、kube-controller-manager 等)协作。
176
175
177
176
<!--
178
- [KWOK](https://github.com/kubernetes-sigs/kwok):
177
+ [KWOK](https://github.com/kubernetes-sigs/kwok)
179
178
: KWOK is a component in which you can create a cluster of thousands of Nodes in seconds. It’s
180
179
mostly useful for simulation/testing as a lightweight cluster, and actually another SIG sub
181
180
project [kube-scheduler-simulator](https://github.com/kubernetes-sigs/kube-scheduler-simulator)
182
181
uses KWOK background.
183
182
184
- [descheduler](https://github.com/kubernetes-sigs/descheduler):
185
- : Descheduler is a component recreating pods that are running on undesired Nodes. In Kubernetes,
186
- scheduling constraints (`PodAffinity`, `NodeAffinity`, `PodTopologySpread`, etc) are honored only at
187
- Pod schedule, but it’s not guaranteed that the contrtaints are kept being satisfied afterwards.
188
- Descheduler evicts Pods violating their scheduling constraints (or other undesired conditions) so
189
- that they’re recreated and rescheduled.
183
+ [descheduler](https://github.com/kubernetes-sigs/descheduler)
184
+ : Descheduler is a component recreating pods that are running on undesired Nodes. In Kubernetes,
185
+ scheduling constraints (`PodAffinity`, `NodeAffinity`, `PodTopologySpread`, etc) are honored only at
186
+ Pod schedule, but it’s not guaranteed that the contrtaints are kept being satisfied afterwards.
187
+ Descheduler evicts Pods violating their scheduling constraints (or other undesired conditions) so
188
+ that they’re recreated and rescheduled.
190
189
-->
191
190
[ KWOK] ( https://github.com/kubernetes-sigs/kwok )
192
191
: KWOK 这个组件可以在几秒钟内创建一个包含数千个节点的集群。它主要用于模拟/测试轻量级集群,实际上另一个 SIG 子项目
@@ -199,9 +198,9 @@ that they’re recreated and rescheduled.
199
198
以便这些 Pod 被重新创建和重新调度。
200
199
201
200
<!--
202
- [Descheduling Framework](https://github.com/kubernetes-sigs/descheduler/blob/master/keps/753-descheduling-framework/README.md).
203
- : One very interesting on-going project, similar to [Scheduling
204
- Framework](https://kubernetes.io /docs/concepts/scheduling-eviction/scheduling-framework/) in the
201
+ [Descheduling Framework](https://github.com/kubernetes-sigs/descheduler/blob/master/keps/753-descheduling-framework/README.md)
202
+ : One very interesting on-going project, similar to
203
+ [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/) in the
205
204
scheduler, aiming to make descheduling logic extensible and allow maintainers to focus on building
206
205
a core engine of descheduler.
207
206
-->
@@ -236,8 +235,7 @@ improving our components over the years.
236
235
**AP: Kubernetes is a community-driven project. Any recommendations for new contributors or
237
236
beginners looking to get involved and contribute to SIG scheduling? Where should they start?**
238
237
239
- **KN**: Let me start with a general recommendation for contributing to any SIG: a common approach is
240
- to look for
238
+ **KN**: Let me start with a general recommendation for contributing to any SIG: a common approach is to look for
241
239
[good-first-issue](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
242
240
However, you'll soon realize that many people worldwide are trying to contribute to the Kubernetes
243
241
repository.
@@ -254,10 +252,10 @@ SIG Scheduling 做出贡献的初学者有什么建议?他们应该从哪里
254
252
<!--
255
253
I suggest starting by examining the implementation of a component that interests you. If you have
256
254
any questions about it, ask in the corresponding Slack channel (e.g., #sig-scheduling for the
257
- scheduler, #sig-node for kubelet, etc). Once you have a rough understanding of the implementation,
255
+ scheduler, #sig-node for kubelet, etc). Once you have a rough understanding of the implementation,
258
256
look at issues within the SIG (e.g.,
259
257
[sig-scheduling](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Asig%2Fscheduling)),
260
- where you'll find more unassigned issues compared to good-first-issue ones. You may also want to
258
+ where you'll find more unassigned issues compared to good-first-issue ones. You may also want to
261
259
filter issues with the
262
260
[kind/cleanup](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue++label%3Akind%2Fcleanup+)
263
261
label, which often indicates lower-priority tasks and can be starting points.
@@ -271,11 +269,11 @@ Slack 频道中提问(例如,调度器的 #sig-scheduling,kubelet 的 #sig
271
269
标签的 Issue,这通常表示较低优先级的任务,可以作为起点。
272
270
273
271
<!--
274
- Specifically for SIG Scheduling, you should first understand the [Scheduling
275
- Framework](https://kubernetes.io /docs/concepts/scheduling-eviction/scheduling-framework/), which is
276
- the fundamental architecture of kube-scheduler. Most of the implementation is found in
277
- [pkg/scheduler](https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler). I suggest
278
- starting with
272
+ Specifically for SIG Scheduling, you should first understand the
273
+ [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/), which is
274
+ the fundamental architecture of kube-scheduler. Most of the implementation is found in
275
+ [pkg/scheduler](https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler).
276
+ I suggest starting with
279
277
[ScheduleOne](https://github.com/kubernetes/kubernetes/blob/0590bb1ac495ae8af2a573f879408e48800da2c5/pkg/scheduler/schedule_one.go#L66)
280
278
function and then exploring deeper from there.
281
279
@@ -295,15 +293,14 @@ considerable impact on the community.
295
293
但许多项目实际上有大量用户,并对社区产生了相当大的影响。
296
294
297
295
<!--
298
- And last but not least, remember contributing to the community isn’t just about code. While I
296
+ And last but not least, remember contributing to the community isn’t just about code. While I
299
297
talked a lot about the implementation contribution, there are many ways to contribute, and each one
300
298
is valuable. One comment to an issue, one feedback to an existing feature, one review comment in PR,
301
299
one clarification on the documentation; every small contribution helps drive the Kubernetes
302
300
ecosystem forward.
303
301
304
302
**AP: Those are some pretty useful tips! And if I may ask, how do you assist new contributors in
305
- getting started, and what skills are contributors likely to learn by participating in SIG
306
- Scheduling?**
303
+ getting started, and what skills are contributors likely to learn by participating in SIG Scheduling?**
307
304
-->
308
305
最后但同样重要的是,记住为社区做贡献不仅仅是编写代码。
309
306
虽然我谈到了很多关于实现的贡献,但还有许多其他方式可以做贡献,每一种都很有价值。
@@ -336,9 +333,8 @@ pain points?**
336
333
**KN**: Scheduling in Kubernetes can be quite challenging because of the diverse needs of different
337
334
organizations with different business requirements. Supporting all possible use cases in
338
335
kube-scheduler is impossible. Therefore, extensibility is a key focus for us. A few years ago, we
339
- rearchitected kube-scheduler with [Scheduling
340
- Framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/), which
341
- offers flexible extensibility for users to implement various scheduling needs through plugins. This
336
+ rearchitected kube-scheduler with [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework/),
337
+ which offers flexible extensibility for users to implement various scheduling needs through plugins. This
342
338
allows maintainers to focus on the core scheduling features and the framework runtime.
343
339
-->
344
340
** KN** : 在 Kubernetes 中进行调度可能相当具有挑战性,因为不同组织有不同的业务要求。
@@ -361,15 +357,15 @@ difficult as even small changes, which look irrelevant to performance, can lead
361
357
但不巧的是,我们有时会忽视在不常见场景下的性能下降。即使是与性能无关的小改动也有难度,可能导致性能下降。
362
358
363
359
<!--
364
- **AP: What are some upcoming goals or initiatives for SIG Scheduling? How do you envision the SIG evolving in the future?**
360
+ **AP: What are some upcoming goals or initiatives for SIG Scheduling? How do you envision the SIG evolving in the future?**
365
361
366
362
**KN**: Our primary goal is always to build and maintain _extensible_ and _stable_ scheduling
367
363
runtime, and I bet this goal will remain unchanged forever.
368
364
369
365
As already mentioned, extensibility is key to solving the challenge of the diverse needs of
370
366
scheduling. Rather than trying to support every different use case directly in kube-scheduler, we
371
367
will continue to focus on enhancing extensibility so that it can accommodate various use
372
- cases. [kube-scheduler-wasm-extention ](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension)
368
+ cases. [kube-scheduler-wasm-extension ](https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension)
373
369
that I mentioned is also part of this initiative.
374
370
-->
375
371
** AP: 接下来 SIG Scheduling 有哪些即将实现的目标或计划?你如何看待 SIG 的未来发展?**
@@ -405,15 +401,15 @@ about SIG Scheduling?**
405
401
**KN**: Scheduling is one of the most complicated areas in Kubernetes, and you may find it difficult
406
402
at first. But, as I shared earlier, you can find many opportunities for contributions, and many
407
403
maintainers are willing to help you understand things. We know your unique perspective and skills
408
- are what makes our open source so powerful :)
404
+ are what makes our open source so powerful 😊
409
405
-->
410
406
## 结束语
411
407
412
408
** AP: 最后,你想对那些有兴趣了解 SIG Scheduling 的人说些什么?**
413
409
414
410
** KN** : 调度是 Kubernetes 中最复杂的领域之一,你可能一开始会觉得很困难。但正如我之前分享的,
415
411
你可以找到许多贡献的机会,许多维护者愿意帮助你理解各事项。
416
- 我们知道你独特的视角和技能是我们的开源项目能够如此强大的源泉 :)
412
+ 我们知道你独特的视角和技能是我们的开源项目能够如此强大的源泉 😊
417
413
418
414
<!--
419
415
Feel free to reach out to us in Slack
0 commit comments