Kubernetes

[Kubernetes] Kube Scheduler

thdwldud 2026. 6. 14. 22:03
728x90
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator(CKA) with Practice Tests 강의를 공부한 내용입니다.

 

Certified Kubernetes Administrator (CKA) with Practice Tests

<p><strong>CKA Certification Course – Certified Kubernetes Administrator</strong></p><p>Kubernetes is one of the highest trending technology in Cloud Computing as of today. Kubernetes had the fastest growth in job searches, over 173% from a year before,

www.udemy.com

 

Scheduler는 Pod을 어느 Node에 배치할지 결정하는 역할을 함

  • Scheduler = “결정만 함”
  • 실제 Pod 생성 = Kubelet이 수행

Scheduler 동작 개요

Scheduler의 주요 역할 : Pod을 적절한 Node에 할당

이때 고려하는 요소:

  • CPU / Memory 자원
  • Node 특성
  • Pod 요구사항

여러 Node와 Pod이 있을 경우, Scheduler는 두 단계로 판단

 

1. Filtering 단계 (필터링)

이 단계에서는 조건에 맞지 않는 Node를 제거

예시:

  • Pod이 CPU 10개 필요
  • Node:
    • Node1 → CPU 4 ❌
    • Node2 → CPU 12 ✅
    • Node3 → CPU 16 ✅

→ CPU 부족한 Node는 즉시 제외

 

2. Ranking 단계 (우선순위 평가)

필터링 후 남은 Node들을 점수화

  • 점수 범위: 0 ~ 10
  • 더 적합한 Node에 높은 점수 부여

예시:

  • Node2 → 여유 CPU 2개
  • Node3 → 여유 CPU 6개

→ Node3가 더 높은 점수 ⇒  선택됨

 

Scheduler 핵심 흐름

  1. Pod 생성 요청 발생
  2. Scheduler가 Node 후보 필터링
  3. 후보 Node 점수 평가
  4. 최적 Node 선택
  5. API Server에 결과 전달
  6. Kubelet이 실제 Pod 생성

커스터마이징

Scheduler는 다양한 방식으로 커스터마이징 가능:

  • Node Selector
  • Affinity / Anti-Affinity
  • Taints & Tolerations
  • Resource Limits

→ 필요하면 Custom Scheduler도 구현 가능

 

설치 및 실행

다운로드

wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-scheduler

 

서비스 실행 예시

ExecStart=/usr/local/bin/kube-scheduler \
--config=/etc/kubernetes/config/kube-scheduler.yaml \
--v=2

 

kubeadm 환경

  • kube-system namespace에 Pod로 실행됨

확인:

kubectlget pods-n kube-system

 

설정 확인:

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

실행 상태 확인

ps-aux |grep kube-scheduler

 

예시:

kube-scheduler --kubeconfig=/etc/kubernetes/scheduler.conf --leader-elect=true

 

핵심 정리

  • Scheduler = Pod 배치 결정
  • Filtering → Ranking 단계로 Node 선택
  • 실제 실행은 Kubelet 담당
  • 다양한 정책으로 커스터마이징 가능
728x90
반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Kube Controller Manager  (0) 2026.06.08
[Kubernetes] Kube-API Server  (0) 2026.06.01
[Kubernetes] ETCD in Kubernetes  (0) 2026.05.25
[Kubernetes] ETCD For Beginners  (0) 2026.05.18
[Kubernetes] Docker vs ContainerD  (0) 2026.05.09