Kube Scheduler
역할 : Node에서 Pod의 스케쥴링을 담당한다.
-> 어떤 뜻일까? 파드를 어떤 노드에다가 배치할지 특정 조건(Creteria)를 통해 결정만 하는 역할을 담당.
여기서 중요한 점은 스케쥴러는 실제로 파드를 노드에 배치시키는 행위를 하지는 않아.
실제 파드를 노드에 배치시키는 역할은 Kubelet이 담당함
그러면 예를 들어 생각해보자
CPU의 요구사항이 10개인 파드를 노드에대가 배치해야 함.
현재 워커노드의 경우 사용 가능한(남아있는) CPU양은 아래와 같음
노드1(CPU4) - 노드2(CPU4) - 노드3(CPU12) - 노드4(CPU16)
자 그러면 Kube Scheduler는 먼저 워커노드 중 CPU 요구사항이 충분하지 않은 노드 1,2번을 필터링 함
그럼 남은건 노드 3,4번이겠지?
둘 다 파드를 배치시킬수는 있겠지만 여기서도 선택하는 조건이 있음
priority function이란걸 써서 일종의 우선순위의 가산점을 매김. 노드에 0부터 10까지의 점수를 매겨서 어떤 노드가 적합할지 선정하는 과정을 거침
그럼 다시 돌아와서 워커노드 3,4번 모두 10개의 CPU는 남아있지만 파드를 배치후에 노드3은 CPU잔여량 2개, 노드4는 CPU잔여량이 6개잖어? 그럼 노드4번이 이김
물론 내가 스케쥴러를 커스터마이징해서 나만의 노드 선정 조건을 만들수도 있음
끝
'IT > 쿠버네티스' 카테고리의 다른 글
[CKA] Kubernetes (7) - Kube-proxy (0) | 2022.01.04 |
---|---|
[CKA] Kubernetes (6) - Kubelet (0) | 2022.01.04 |
[CKA] Kubernetes (4) - kube-controller-manager (0) | 2022.01.04 |
[CKA] Kubernetes (3) - Kube-api server (0) | 2022.01.03 |
[CKA] Kubernetes (2) - Etcd의 개념 (0) | 2022.01.03 |