728x90
쿠버네티스 스케줄러 (kube-scheduler)
- 쿠버네티스 스케줄러는 노드에 포드를 스케줄링하는 역할을 함.
- 스케줄러는 포드가 어떤 노드에 배치될지를 결정하지만,
- 실제로 포드를 노드에 배치하는 것은 kubelet의 역할임.
Scheduler 의 필요성
- 여러 개의 배와 컨테이너가 있을 때, 올바른 컨테이너가 올바른 배에 배치되도록 해야 함.
- 배의 크기와 컨테이너의 크기가 다를 수 있으므로, 배가 해당 컨테이너를 수용할 수 있는 충분한 용량을 가지고 있어야 함.
- 배들이 서로 다른 목적지로 향할 수 있으므로, 컨테이너가 올바른 목적지로 가기 위해 적절한 배에 배치되어야 함.
Scheduler의 동작 방식
- 스케줄러는 각 포드를 살펴보고 가장 적합한 노드를 찾음.
- 예를 들어, 큰 파란색 포드는 특정 CPU와 메모리 요구사항을 가지고 있음.
- 스케줄러는 아래 두 가지 단계를 거쳐 포드에 가장 적합한 노드를 식별함.
1. 필터링 단계
- 첫 번째 단계에서 스케줄러는 해당 포드의 프로필에 맞지 않는 노드를 걸러냄.
- 예를 들어, 충분한 CPU와 메모리 자원이 없는 노드를 제외함.
- 필터링 후 남은 노드들 중에서 선택함.
2. 랭킹 단계
- 스케줄러는 노드들을 랭킹하여 포드에 가장 적합한 노드를 식별함.
- 우선 순위 함수를 사용하여 노드에 0에서 10까지의 점수를 부여함.
- 예를 들어, 포드를 배치한 후 노드에 남아 있을 자원량을 계산하여 점수를 부여함.
- 랭킹이 높은 노드가 선택됨.
kube-scheduler 설치 방법
- 쿠버네티스 릴리스 페이지에서 kube-scheduler 바이너리를 다운로드하여 서비스로 실행함.
wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/adm64/kube-scheduler
kube-scheduler.servicec
ExeccStart=/usr/local/bin/kube-scheduler --config=/etc/kubernetes/config/kube-scheduler.yaml --v=2
kube-scheduler 서버 옵션 보기
- kubeadm 도구로 설정한 경우, kubeadm은 마스터 노드의 kube 시스템 네임스페이스에 kube-scheduler를 포드로 배포함.
- 포드 정의 파일은 /etc/kubernetes/manifests 폴더에 위치함.
- 마스터 노드에서 실행 중인 프로세스를 나열하고 kube-scheduler를 검색하여 실행 중인 프로세스와 유효한 옵션을 확인할 수 있음.
728x90
'자격증 > CKA' 카테고리의 다른 글
[CKA] Udemy 20. Kube Proxy (0) | 2024.06.23 |
---|---|
[CKA] Udemy 19. Kubelet (0) | 2024.06.23 |
[CKA] Udemy 17. Kube Controller Manager (0) | 2024.04.18 |
[CKA] Udemy 16. KubeAPI (0) | 2024.04.15 |
[CKA] Udemy 13, 14 ETCD For Beginners (in Kubernetes) (0) | 2024.04.15 |