쿠버네티스 스케줄러 (Kubernetes Scheduler)
Feb 12, 2026 · Updated Mar 15, 2026
핵심 개념
섹션 제목: “핵심 개념”Scheduler는 Control Plane 내에서 실행되는 특수한 유형의 컨트롤러로, 유일한 임무는 애플리케이션 인스턴스를 워커 노드에 스케줄링하는 것이다.
동작 방식:
- API Server를 통해 새로 생성된 Pod 객체를 감지
- 각 Pod에 가장 적합한 워커 노드를 선택
- API를 통해 Pod 객체를 수정하여 해당 노드에 할당
스케줄링이라는 용어는 “미래의 어느 시점에 실행되도록 예약”하는 것이 아니다. OS의 CPU 스케줄러가 프로세스를 CPU에 할당하는 것처럼, Kubernetes Scheduler는 Pod를 노드에 할당하며 Pod는 즉시 실행된다.
중요한 특징:
- Pod가 한 번 노드에 할당되면, 해당 인스턴스는 다른 노드로 이동되지 않음 (CPU 프로세스와 다름)
- 노드 장애 시 기존 Pod가 이동하는 것이 아니라 새로운 Pod 인스턴스가 다른 노드에 생성됨
- 여러 요인(리소스 요구사항, 노드 가용 리소스, 제약조건 등)을 고려하여 최적의 배치를 결정
- 대규모 클러스터에서 최적 조합을 찾는 것은 인간보다 훨씬 빠르고 효율적으로 수행됨
graph TD D["Deployment 생성"] --> C["Controller가 Pod 객체 생성"] C --> S["Scheduler가 미할당 Pod 감지"] S --> E["각 노드의 가용 리소스 평가"] E --> N1["Worker Node 1: CPU 80% ❌"] E --> N2["Worker Node 2: CPU 30% ✅"] E --> N3["Worker Node 3: CPU 50% ✅"] N2 --> A["Worker Node 2를 선택하여 Pod에 할당"] A --> K["Worker Node 2의 Kubelet이 Pod 실행"]
# Pod가 어떤 노드에 스케줄링되었는지 확인$ kubectl get pods -o wideNAME ... IP NODEweb-server-9d785b578-58vhc ... 10.244.1.5 worker1web-server-9d785b578-jmnj8 ... 10.244.2.4 worker2관련 개념
섹션 제목: “관련 개념”- 컨트롤 플레인 (Control Plane) - Scheduler가 속한 제어 영역
- 파드 (Pod) - Scheduler가 노드에 할당하는 기본 배포 단위
- Kubelet - 노드에서 스케줄된 Pod를 실행하는 에이전트
- 디플로이먼트 (Deployment) - Pod 생성을 유발하는 상위 객체