심플코더
간단한 코딩 공간
   

글쓰기    관리    수식입력
  • 분류 전체보기 (84)
    • AWS (1)
    • JavaScript (11)
    • 개인학습 (5)
    • DB (11)
    • OS (9)
    • Network (7)
    • DevOps (0)
    • TypeScript (1)
    • 개발 (1)
    • CKA (28)
hELLO · Designed By 정상우.
심플코더

간단한 코딩 공간

CKA

(TIL) Kube-Scheduler

Kube-Scheduler

kube-scheduler는 kubernetes에서 Pod를 적절한 노드에 배치하는 역할을 하는 핵심 컴포넌트이다.
다만 scheduler를 pod를 직접 배포하지는 않으며, 단순히 이 pod는 이 node에서 실행해라! 라는 결정을 내리는 역할만을 수행한다.
실제로 Pod를 실행하는 것은 Kubelet이다

kube-scheduler가 Pod를 배치하는 과정

pod 배치 과정은 두 단계로 이루어진다.

Filtering

Pod가 실행될 수 없는 노드를 제거한다. 예를 들어, Pod이 요청한 CPU/메모리보다 적은 리소스를 가진 노드는 배제된다. 결과적으로 Pod를 실행할 수 있는 후보 노드 목록을 생성한다.

Scoring

후보 노드 중에서 가장 적절한 노드를 선택하는 과정이다. 기본적으로 0~10점을 부여하며 가장 높은 점수를 받은 노드가 선정된다.

kube-scheduler가 고려하는 요소

Kube-scheduler는 pod 배치 시 다음과 같이 다양한 조건을 고려한다.

  • 리소스 요구 사항(CPU, 메모리)
  • Taints & Tolertaions
    • 특정 노드에 특정 Pod만 실행되도록 설정 가능하다.
  • Node Selector
    • pod이 특정 노드에서만 실행되도록 강제할 수 있음
    • ex) nodeSelector를 사용하여 특정 레이블을 가진 노드에서만 실행되도록 지정할 수 있음
  • Node Affinity & Pod Affinity
    • 특정 노드에 우선적으로 배치되거나, 특정 Pod와 가까운 위치에 배치하는 기능이다.
    Kube-Scheduler 설정 파일 확인 방법
    • kube-scheduler는 Pod 형태로 자동 배포
    • 설정 파일은 /etc/kubernetes/manifests/kube-scheduler.yaml에 저장됨
    수동으로 구축한 경우
    • 시스템 서비스로 실행된다
    • 설정 파일은 /etc/systemd/system/kube-scheduler.service에 위치
  • kubeadm을 사용한 경우

'CKA' 카테고리의 다른 글

(TIL) Kubernetes의 Pod  (0) 2025.03.13
(TIL) Kube-Proxy  (0) 2025.03.09
(TIL) Kube Controller Manager in Kubernetes  (0) 2025.03.09
(TIL) Kube-API Server  (0) 2025.03.09
(TIL) Kubernetes의 ETCD  (0) 2025.03.03
    'CKA' 카테고리의 다른 글
    • (TIL) Kubernetes의 Pod
    • (TIL) Kube-Proxy
    • (TIL) Kube Controller Manager in Kubernetes
    • (TIL) Kube-API Server
    심플코더
    심플코더

    티스토리툴바