자격증/CKA

[CKA] Udemy 18. kube-scheduler

14ben 2024. 6. 22. 23:52
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