Scheduler의 역할
- 파드가 어디로 가는지 결정 - 파드를 생성하는 kubelet과는 엄연히 다르다
- 선박 목적지, 크기 등 다양한 조건에 따라 컨테이너를 올바른 선박에 배치하는 역할
- scheduler가 pod를 어느 node에 배치할지 결정 - 특정 기준 및 리소스 요구 사항을 고려함
배치 기준
-
Filter Nodes
예를 들어, 파드에서 요청한 CPU 및 메모리 리소스가 충분하지 않은 노드 제외
-
Rank Nodes
노드 순위 매기기, 우선순위 함수를 사용하여 0~10점 척도로 점수 할당
- 우선순위 함수 예시: 노드에 파드를 배치한 후 노드에서 사용할 수 있는 리소스의 양 계산
- 해당 기능은 사용자 지정 및 자신만의 scheduler 작성 가능
- more
- resource requirements and limits
- taints and tolerations
- node selectors/affinity
등 살펴보아야할 주제가 많음, 추후에 다룸
Installing kube-scheduler
wget https://storage.googleapis.com/kubenetes-release/release/v1.xx.0/bin/linux/amd64/kube-scheduler
- 서비스로 실행하는 경우 스케줄러 구성파일을 지정
Viewing kube-scheduler options
kubeadm으로 확인
cat /etc/kubernetes/manifests/kube-scheduler.yaml
- kubeadm 도구로 설정 시 마스터 노드 kube 네임스페이스에 파드로 scheduler를 배포하기 때문에 anifests 파일에서 확인 가능한 것
실행중인 프로세스와 옵션 확인
ps -aux | grep kube-scheduler