콘텐츠로 이동

Kubelet

Feb 12, 2026 · Updated Mar 15, 2026

Kubelet은 Workload Plane의 핵심 컴포넌트로, 각 워커 노드에서 직접 운영체제 위에 실행된다 (컨테이너 내부가 아닌 호스트 OS에서 실행).

주요 역할:

  1. Pod 실행 감지: API Server를 통해 자신의 노드에 할당된 새 Pod를 감지
  2. 컨테이너 실행 지시: Container Runtime(Docker 등)에게 이미지를 풀(pull)하고 컨테이너를 생성, 실행하도록 지시
  3. 애플리케이션 건강 유지: 애플리케이션이 종료되면 자동으로 재시작
  4. 상태 보고: Pod와 노드의 상태를 API를 통해 보고 (Pod 인스턴스를 나타내는 객체를 업데이트)
  5. Node 객체 생성: 클러스터에 머신이 추가되면 Kubelet이 Node 객체를 생성하여 노드를 등록

Kubelet의 동작은 컨트롤러 패턴을 따른다:

  • 자신의 노드에 할당된 Pod 인스턴스를 감시
  • Container Runtime을 통해 애플리케이션을 실행
  • 실행 상태를 지속적으로 모니터링
  • 장애 발생 시 자동 복구 시도

특이점: Node 객체는 일반적으로 사용자가 아닌 Kubelet에 의해 생성된다. Kubelet이 자신이 실행 중인 노드를 API에 등록하는 방식이다.

sequenceDiagram
  participant S as Scheduler
  participant K as Kubelet (Worker Node 2)
  participant CR as Container Runtime
  participant R as Container Registry
  participant API as API Server

  S->>API: Pod를 Worker Node 2에 할당
  API->>K: Pod 할당 감지
  K->>CR: 컨테이너 실행 지시
  CR->>R: 이미지 Pull
  R-->>CR: 이미지 반환
  CR->>CR: 컨테이너 생성 및 실행
  CR-->>K: 실행 완료
  K->>API: Pod 상태를 Running으로 업데이트
  loop 지속적 모니터링
      K->>API: 상태 보고
  end
Terminal window
# Kubelet이 실행 중인지 확인 (Minikube)
$ minikube status
kubelet: Running
apiserver: Running
kubeconfig: Configured