Cloud/k8s-CKA

[CKA] 14. scheduler profile 설정

jinkwon.kim 2023. 3. 7. 22:34
728x90
반응형

개요

scheduling의 진행 stage와 stage별 step 알아보고 각 step별 사용하는 plugin을 알아보겠습니다.

용어 정리 

plugin : scheduling의 step을 상세하게 제어하기 위해 사용하는 설정 또는 object를 말합니다.

Scheduling의 Stage 및 역활

Sheduling Queue

Pod는 sheduling을 위해서 처음에 Scheduilng Queue에 들어가게 됩니다. 

그리고 이 단계에서 PriorityClass(plugin)를 사용하여 Pod의 scheduling 우선순위를 정할 수 있습니다.

Filtering

Flitering 조건(plugin)에 따라서 Pod를 scheduling 할  후보 Node들을 선정합니다.

fltering plugin - resource

Pod scheduling시 Pod가 CPU를 10개를 요구하면 CPU개수가 부족한 Node를 scheduling 후보에서 제외를 합니다.

fltering plugin - NodeName

Pod Spec에 Scheduling 할 Node가 이미 선정되어 있으면 해당 Node에 Pod를 scheduilng 합니다.

fltering plugin - Unscheduable

scheduling이 되면 안 될 Node는 제외를 합니다.

fltering plugin - 그 외 

1. taint - toleration

https://doitnow-man.tistory.com/entry/CKA-7-scheduling

2. NodeAffinity

https://doitnow-man.tistory.com/entry/CKA-7-schedule-Node-Selector-Node-Affinity

scoring

sheduilng 가능한 Node가 2개 이상일 때 최종 Node를 선정하기 위해서 점수를 매깁니다.

scoring plugin - resource

Pod spec을 제외하고도 resource가 많은 node가 점수가 더 높습니다. 

scoring plugin - ImageLocality

Pod의 image를 가지고 있는 Node가 점수가 더 높습니다.  

binding

최종 Node를 선택하여 Pod를 scheduilng 합니다.

Scheduling의 단계 별 상세 동작 step

지금까지 설명한 것은 scheduling의 stage 별 기본 step과 step 별 사용가능한 plugin을 알아본 것입니다.

그러나 기본 step 말고도 더 많은 step이 존재합니다.

예를 들어 filtering 단계에서는 prefilter, filter, postfilter 이렇게 3개의 step이 존재합니다.

그러면 이제 궁금할 것입니다. "이 step들과 plugin 설정은 어떻게 활용이 되는가?"입니다. 

결론부터 말하자면, KubeSchedulerConfiguration에서 scheduler마다 사용자가 원하는 방식으로 step별 puligin을 disable 시키거나 enable 시킬 때 사용합니다. 

 

아래 예제를 한번 보겠습니다. 

my-scheduler-2 에서는 score 단 에서 사용할 plugin인 TaintToleration을 disable 시켰고, custom plugin은 enable 시켰습니다. 

my-scheduler-3 에서는 preScore와 score단계서 사용할 plugin을 모두 disable 시켰습니다.

정리

k8s에서 sheuduler는 사용자가 따로 만들어서 배포할 수 있고 해당 scheduler의 step에서 사용하는 plugin 또한 제어가 가능하다.

Next Post

[CKA] 15. k8s Monitoring (METRIC SERVER)

728x90
반응형

'Cloud > k8s-CKA' 카테고리의 다른 글

[CKA] 16. k8s Rolling update and Rollback  (2) 2023.03.23
[CKA] 15. k8s Monitoring (METRIC SERVER) and log  (0) 2023.03.19
[CKA] 13. multiple scheduler  (0) 2023.03.06
[CKA] 12. Static Pod  (0) 2023.03.05
[CKA] 11. DaemonSet  (0) 2023.03.04