@@ -4,7 +4,7 @@ content_type: concept
4
4
weight : 20
5
5
---
6
6
7
- {{< feature-state for_k8s_version="v1.19 " state="beta " >}}
7
+ {{< feature-state for_k8s_version="v1.25 " state="stable " >}}
8
8
9
9
구성 파일을 작성하고 해당 경로를 커맨드 라인 인수로 전달하여
10
10
` kube-scheduler ` 의 동작을 사용자 정의할 수 있다.
@@ -18,21 +18,27 @@ weight: 20
18
18
각 단계는 익스텐션 포인트(extension point)를 통해 노출된다. 플러그인은 이러한
19
19
익스텐션 포인트 중 하나 이상을 구현하여 스케줄링 동작을 제공한다.
20
20
21
- KubeSchedulerConfiguration ([ v1beta2 ] ( /docs/reference/config-api/kube-scheduler-config.v1beta2 / )
22
- 또는 [ v1beta3 ] ( /docs/reference/config-api/kube-scheduler-config.v1beta3 / ) )
21
+ KubeSchedulerConfiguration ([ v1beta3 ] ( /docs/reference/config-api/kube-scheduler-config.v1beta3 / )
22
+ 또는 [ v1 ] ( /docs/reference/config-api/kube-scheduler-config.v1 / ) )
23
23
구조에 맞게 파일을 작성하고,
24
24
` kube-scheduler --config <filename> ` 을 실행하여
25
25
스케줄링 프로파일을 지정할 수 있다.
26
26
27
27
최소 구성은 다음과 같다.
28
28
29
29
``` yaml
30
- apiVersion : kubescheduler.config.k8s.io/v1beta2
30
+ apiVersion : kubescheduler.config.k8s.io/v1
31
31
kind : KubeSchedulerConfiguration
32
32
clientConnection :
33
33
kubeconfig : /etc/srv/kubernetes/kube-scheduler/kubeconfig
34
34
` ` `
35
35
36
+ {{< note >}}
37
+ KubeSchedulerConfiguration [v1beta2](/docs/reference/config-api/kube-scheduler-config.v1beta2/)는
38
+ v1.25부터 사용 중단되었고 v1.26부터 제거된다. KubeSchedulerConfiguration을
39
+ [v1beta3](/docs/reference/config-api/kube-scheduler-config.v1beta3/) 또는 [v1](/docs/reference/config-api/kube-scheduler-config.v1/)로 전환한 뒤에
40
+ 쿠버네티스를 v1.25로 업그레이드하도록 한다.
41
+ {{< /note >}}
36
42
## 프로파일
37
43
38
44
스케줄링 프로파일을 사용하면 {{< glossary_tooltip text="kube-scheduler" term_id="kube-scheduler" >}}에서
@@ -85,7 +91,7 @@ clientConnection:
85
91
자체 플러그인을 활성화할 수 있다. 예를 들면, 다음과 같다.
86
92
87
93
` ` ` yaml
88
- apiVersion: kubescheduler.config.k8s.io/v1beta2
94
+ apiVersion: kubescheduler.config.k8s.io/v1
89
95
kind: KubeSchedulerConfiguration
90
96
profiles:
91
97
- plugins:
@@ -172,11 +178,6 @@ profiles:
172
178
기본으로 활성화되지 않는 다음의 플러그인을
173
179
컴포넌트 구성 API를 통해 활성화할 수도 있다.
174
180
175
- - `SelectorSpread` : {{< glossary_tooltip text="Services" term_id="service" >}},
176
- {{< glossary_tooltip text="ReplicaSets" term_id="replica-set" >}}와
177
- {{< glossary_tooltip text="StatefulSets" term_id="statefulset" >}}에 속하는 파드의 경우,
178
- 노드간에 퍼지는 것을 선호한다.
179
- 익스텐션 포인트 : ` preScore` , `score`.
180
181
- `CinderLimits` : 노드에 대해 [OpenStack Cinder](https://docs.openstack.org/cinder/)
181
182
볼륨 제한이 충족될 수 있는지 확인한다.
182
183
익스텐션 포인트 : ` filter` .
@@ -192,7 +193,7 @@ profiles:
192
193
실행된다.
193
194
194
195
` ` ` yaml
195
- apiVersion: kubescheduler.config.k8s.io/v1beta2
196
+ apiVersion: kubescheduler.config.k8s.io/v1
196
197
kind: KubeSchedulerConfiguration
197
198
profiles:
198
199
- schedulerName: default-scheduler
@@ -241,7 +242,7 @@ profiles:
241
242
다음과 같은 프로파일 환경 설정을 사용한다.
242
243
243
244
` ` ` yaml
244
- apiVersion: kubescheduler.config.k8s.io/v1beta3
245
+ apiVersion: kubescheduler.config.k8s.io/v1
245
246
kind: KubeSchedulerConfiguration
246
247
profiles:
247
248
- schedulerName: multipoint-scheduler
@@ -255,7 +256,7 @@ profiles:
255
256
동일한 효과를 갖는다.
256
257
257
258
` ` ` yaml
258
- apiVersion: kubescheduler.config.k8s.io/v1beta3
259
+ apiVersion: kubescheduler.config.k8s.io/v1
259
260
kind: KubeSchedulerConfiguration
260
261
profiles:
261
262
- schedulerName: non-multipoint-scheduler
@@ -284,7 +285,7 @@ profiles:
284
285
다음은 `Score` 와 `PreScore` 에 대해 비활성화하는 예시이다.
285
286
286
287
` ` ` yaml
287
- apiVersion: kubescheduler.config.k8s.io/v1beta3
288
+ apiVersion: kubescheduler.config.k8s.io/v1
288
289
kind: KubeSchedulerConfiguration
289
290
profiles:
290
291
- schedulerName: non-multipoint-scheduler
@@ -300,14 +301,15 @@ profiles:
300
301
- name: '*'
301
302
` ` `
302
303
303
- ` v1beta3` 에서, `MultiPoint` 필드를 통해 내부적으로 모든 [기본 플러그인](#scheduling-plugins)이 활성화된다.
304
+ ` kubescheduler.config.k8s.io/v1beta3` 부터, `MultiPoint` 필드를 통해
305
+ 내부적으로 모든 [기본 플러그인](#scheduling-plugins)이 활성화된다.
304
306
그러나, 개별 익스텐션 포인트에 대해 기본값(예 : 순서, Score 가중치)을 유연하게 재설정하는 것도 여전히 가능하다.
305
307
예를 들어, 2개의 Score 플러그인 `DefaultScore1` 과 `DefaultScore2` 가 있고
306
308
각각의 가중치가 `1` 이라고 하자.
307
309
이 때, 다음과 같이 가중치를 다르게 설정하여 순서를 바꿀 수 있다.
308
310
309
311
` ` ` yaml
310
- apiVersion: kubescheduler.config.k8s.io/v1beta3
312
+ apiVersion: kubescheduler.config.k8s.io/v1
311
313
kind: KubeSchedulerConfiguration
312
314
profiles:
313
315
- schedulerName: multipoint-scheduler
@@ -342,7 +344,7 @@ profiles:
342
344
이들 플러그인에 대한 유효한 예시 환경 설정은 다음과 같다.
343
345
344
346
` ` ` yaml
345
- apiVersion: kubescheduler.config.k8s.io/v1beta3
347
+ apiVersion: kubescheduler.config.k8s.io/v1
346
348
kind: KubeSchedulerConfiguration
347
349
profiles:
348
350
- schedulerName: multipoint-scheduler
@@ -451,6 +453,11 @@ profiles:
451
453
* `NodeAffinity`: 1 에서 2 로
452
454
* `TaintToleration`: 1 에서 3 으로
453
455
{{% /tab %}}
456
+
457
+ {{% tab name="v1beta3 → v1" %}}
458
+ * 스케줄러 플러그인 `SelectorSpread`는 제거되었다. 대신, 비슷한 효과를 얻기 위해
459
+ ` PodTopologySpread` 플러그인(기본적으로 활성화되어 있음)을 사용한다.
460
+ {{% /tab %}}
454
461
{{< /tabs >}}
455
462
456
463
# # {{% heading "whatsnext" %}}
@@ -459,3 +466,4 @@ profiles:
459
466
* [스케줄링](/ko/docs/concepts/scheduling-eviction/kube-scheduler/)에 대해 알아보기
460
467
* [kube-scheduler 설정 (v1beta2)](/docs/reference/config-api/kube-scheduler-config.v1beta2/) 레퍼런스 읽어보기
461
468
* [kube-scheduler 설정 (v1beta3)](/docs/reference/config-api/kube-scheduler-config.v1beta3/) 레퍼런스 읽어보기
469
+ * [kube-scheduler 설정 (v1)](/docs/reference/config-api/kube-scheduler-config.v1/) 레퍼런스 읽어보기
0 commit comments