PaaS/Kubernetes

(Kubernetes) Scheduler

armyost 2021. 3. 23. 21:24
728x90

새로 생성된 모든 파드 또는 예약되지 않은 다른 파드에 대해 kube-scheduler는 실행할 최적의 노드를 선택한다. 그러나 파드의 모든 컨테이너에는 리소스에 대한 요구사항이 다르며 모든 파드에도 요구사항이 다르다. 따라서 기존 노드들은 특정 스케줄링 요구사항에 따라 필터링 되어야 한다.

클러스터에서 파드에 대한 스케줄링 요구사항을 충족하는 노드를 실행 가능한(feasible) 노드라고 한다. 적합한 노드가 없으면 스케줄러가 배치할 수 있을 때까지 파드가 스케줄 되지 않은 상태로 유지된다.

스케줄러는 파드가 실행 가능한 노드를 찾은 다음 실행 가능한 노드의 점수를 측정하는 기능 셋을 수행하고 실행 가능한 노드 중에서 가장 높은 점수를 가진 노드를 선택하여 파드를 실행한다. 그런 다음 스케줄러는 바인딩 이라는 프로세스에서 이 결정에 대해 API 서버에 알린다.

스케줄링 결정을 위해 고려해야 할 요소에는 개별 및 집단 리소스 요구사항, 하드웨어 / 소프트웨어 / 정책 제한조건, 어피니티 및 안티-어피니티 명세, 데이터 지역성(data locality), 워크로드 간 간섭 등이 포함된다.

 


Default Scheduler is kube-scheduler
If you want to deploy Additional Scheduler, you need to Build by yourself

 

kubeadm files is located on

cd /etc/kubernetes/manifests/
cp kube-scheduler.yaml /root/my-scheduler.yaml
cd ~
vi my-scheduler.yaml

---------------------------
//spec 섹션의 아래내용 수정
--leader-elect=false
--scheduler-name=my-scheduler

---------------------------


kubectl create -f my-scheduler.yaml

//추후 POD를 생성할때는 아래 옵션을 spec섹션에 추가해야 한다.
schedulerName=my-scheduler

'PaaS > Kubernetes' 카테고리의 다른 글

(Kubernetes) Rollout  (0) 2021.03.24
(Kubernetes) Monitoring  (0) 2021.03.23
(Kubernetes) DeamonSet And StaticPod  (0) 2021.03.22
(Kubernetes) Resource Limits 와 Edit POD  (0) 2021.03.21
(Kubernetes)NodeSelector And NodeAffinity  (0) 2021.03.21