Kube Scheduler

Yu Sang Min·2025년 5월 19일

CKA

목록 보기
5/110
post-thumbnail

📌 Kube Scheduler

  • scheduler는 어떤 Pod가 어느 Node에 들어갈지 결정
  • PodNode에 직접 배치하는것이 아님 👉 kubelet의 역할

❓why and how

why

  • scheduler가 특정 기준에 따라 어느 node에 배치할지 결정
  • 예를들어 리소스 요구 사항이 다른 Pod가 있을 수 있음
  • 특정 응용 프로그램 전용 노드에 배치할 수 있음

how

  • 스케줄러는 각 Pod를 보고 최고의 Node를 찾으려고함
  • 일정 관리자는 두 단계를 거쳐 가장 적합한 노드를 찾음
  1. Filter Nodes - scheduler가 요구사항에 맞지 않는 Node를 필터링함(걸러냄)
  • CPU와 메모리 요구사항이 있는 Pod가 있으면 작은 노드(사양이 낮은)는 걸러짐
  1. Rank Nodes - 우선순위 함수를 이용해 0에서 10까지의 점수를 노드에 매김
  • 가령 schedulerPod를 설치한 후 노드에 남을 리소스 양을 계산
  • 남은 리소스가 많은 노드의 순위가 올라감
  • 물론 이건 사용자 지정이 될 수 있고 고유의 스케줄러를 작성 가능

✔️ 살펴볼 많은 사항

  • Resource Requirements and Limits (리소스 요구 사항)
  • Taints and Tolerations (제한 변수)
  • Node Selectors/Affinity (수용 노드 샐랙터 규칙)

Installing kube-secheduler

# kube-scheduler binary 파일 다운로드 및 서비스 실행
$ wget https://storage-googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-scheduler

# 서비스 실행시 scheduler config file 지정해야함

# kube-scheduler option 확인 (kubeadm 툴로 설치했을 경우 마스터노드의 kube-system namespace에 pod로 자동 배포됨)

$ cat /etc/kubernetes/manifests/kube-scheduler.yaml

# 프로세스 확인 및 effect options
$ ps -aux | grep kube-scheduler
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글