본문 바로가기

Computer Science/Kubernetes 정리

Kubernetes 정리 4 : Kube Scheduler

1. Kube Scheduler

스케쥴러는 어떤 POD가 어떤 노드로 가야하는지 결정하는 것만 한다. 실제로 파드를 노드에 배치하지는 않는다.

Kubelet이 파드를 노드에 배치하는 작업을 한다.

<사례로 보는 스케쥴러의 결정 메커니즘>

CPU:10이라는 요구사항이 있을 때, 스케쥴러는 두 단계를 거친다.

  • POD에 가장 적합한 노드를 식별. 여기서 스케쥴러는 이 POD 프로필에 맞지 않는 노드를 필터링을 시도한다.
    (CPU가 충분치 않은 노드 등)
  • 스케줄러는 노드의 순위를 매긴다. 우선순위 함수를 사용해서 0에서 10까지의 점수를 할당한다. 예를 들어, 스케쥴러는 노드의 리소스 양을 계산하고 POD를 잔여 리소스가 더 많은 노드에 배치한다.
  • 이외에 커스터마이징하여 자신만의 스케쥴러를 만들 수 있다.

 

2. kube-scheduler-Manual 설치하기

Kubernetes release 페이지에서 kube-scheduler 바이너리를 다운로드하고 압축해제 및 서비스로 실행한다.

서비스로 실행할때, Scheduler configration file을 지정해준다.

$ wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-scheduler

3. kube-scheduler 옵션보기