ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Multiple Scheduler
    kubernetes/CKA 2025. 12. 5. 16:30

    Multiple Scheduler

    Kubernetes 클러스터에서 기본 스케줄러(kube-scheduler) 외에 추가로 커스텀 스케줄러를 여러 개 실행하여,

    Pod 배치를 서로 다른 스케줄러가 분담하도록 하는 구조를 말합니다.

     

    아주 쉽게 말하면,

    기본 스케줄러 하나로 모든 Pod를 배치하지 않고,
    여러 개의 스케줄러가 각각 특정 Pod를 배치하도록 역할을 나누는 것.


    🔹 왜 Multiple Scheduler를 쓰나?

    1) 서로 다른 스케줄링 정책을 사용하기 위해

    • 기본 스케줄러는 일반적인 Load 기반 스케줄링
    • 커스텀 스케줄러는 GPU 우선, 비용 우선, 데이터 지역성 우선 같은 특수 로직
      ➡️ 서로 다른 로직을 적용하고 싶을 때.

    2) 특정 Pod만 커스텀 스케줄러로 배치하고 싶을 때

    • 예: AI/ML 훈련 Pod는 GPU 우선 스케줄러
    • 일반 웹 트래픽 Pod는 기본 스케줄러
      ➡️ Pod마다 스케줄러를 선택 가능.

    3) 고성능·고가용성을 위해 스케줄링 자체를 분리

    • 많은 대규모 클러스터에서 기본 스케줄러가 병목이 되는 경우
    • 여러 스케줄러가 병렬로 스케줄링을 해서 성능 향상

    🔹 어떻게 Pod가 어떤 스케줄러를 쓰는지?

    Pod spec에서 schedulerName 필드를 사용:

    apiVersion: v1
    kind: Pod
    metadata:
      name: gpu-job
    spec:
      schedulerName: custom-gpu-scheduler
      containers:
        - name: gpu
          image: tensorflow/tensorflow:latest-gpu
     

    ➡️ 이 Pod는 custom-gpu-scheduler 라는 스케줄러가 스케줄링을 담당.


    🔹 Multiple Scheduler 구조

     
    +----------------------------+
    |        etcd               |
    +-------------+-------------+
                  |
       +----------+----------+
       |                     |
    default-scheduler   custom-scheduler-1
       |                     |
    custom-scheduler-2       |
       |                     |
       ↓                     ↓
     Nodes (Worker Nodes)

     

    각 스케줄러는 API Server에서 Scheduling이 안 된 Pod를 감시하여 자신이 맡은 Pod만 찾아서 스케줄링함.


    🔹 Multiple Scheduler 설정 시 중요한 점

     

    ✔ Pod는 하나의 스케줄러만 선택

    (schedulerName 1개)

    ✔ 각 스케줄러는 충돌 없이 동작해야 한다

    • 동일한 Pod를 동시에 스케줄링하면 안 됨
    • 각 스케줄러가 볼 Pod를 명확히 구분해야 함

    ✔ Leader election(선출)이 필요할 수 있음

    스케줄러가 여러 개라면 활성/대기 구조가 필요할 수 있음

    'kubernetes > CKA' 카테고리의 다른 글

    틀린 문제 #6. Rolling Updates and Rollbacks  (0) 2025.12.10
    Metric Server  (0) 2025.12.08
    틀린 문제 #5. Priority Classes  (0) 2025.12.05
    Priority Classes  (0) 2025.12.05
    틀린 문제 #4 Static Pod  (0) 2025.12.05
Designed by Tistory.