Kubernetes Cluster에서 실제 Container를 실행하는 역할은 Worker Node에서 동작하는 kubelet이 담당합니다.
Control Plane의 Scheduler가 “어느 Node에서 실행할지” 결정한다면, kubelet은 전달받은 명령을 실제 환경에서 실행하고 상태를 보고합니다.
예:
Scheduler
↓
Worker Node 선택
↓
API Server 전달
↓
kubelet 확인
↓
Container 실행
↓
상태 보고
kubelet은 Kubernetes Node에서 가장 중요한 Agent이며, Node와 Control Plane을 연결하는 핵심 Component입니다.
| 구성 요소 | 역할 |
|---|---|
| kubelet | Pod 실행 및 상태 관리 |
| Container Runtime | Container 실행 |
| API Server | 상태 전달 |
| Node | 실제 실행 환경 |
kubelet 구조를 이해하면 Node 장애 분석, Pod 실행 과정, Container Runtime 동작 방식을 이해할 수 있습니다.
Kubernetes kubelet이란?
kubelet은 모든 Worker Node에서 실행되는 Node Agent입니다.
주요 역할:
- Pod 실행 관리
- Container 상태 확인
- Node 상태 보고
- Volume 연결 관리
- Health Check 수행
구조:
API Server
↓
kubelet
↓
Container Runtime
↓
Container
Worker Node의 실행 관리자 역할을 수행합니다.
Kubernetes Architecture에서 kubelet 위치
전체 흐름:
Control Plane
API Server
↓
Worker Node
kubelet
↓
Container Runtime
↓
Pod
Control Plane과 Worker Node 사이의 연결 지점입니다.
Kubernetes Pod 실행 과정에서 kubelet 역할
Pod 생성 과정:
사용자
↓
kubectl apply
↓
API Server
↓
Scheduler
↓
Node 선택
↓
kubelet 전달
↓
Container Runtime 호출
↓
Container 실행
kubelet은 실행 명령을 받아 실제 작업을 수행합니다.
Kubernetes kubelet과 Container Runtime 관계
kubelet은 직접 Container를 실행하지 않습니다.
역할 분리:
kubelet:
“어떤 Container를 실행해야 하는지 관리”
Container Runtime:
“실제로 Container 실행”
대표 Runtime:
- containerd
- CRI-O
구조:
kubelet
↓
CRI
↓
containerd
↓
Container 실행
Kubernetes CRI(Container Runtime Interface) 구조
Kubernetes는 Container Runtime과 직접 연결하지 않고 CRI를 사용합니다.
구조:
kubelet
↓
CRI Interface
↓
Container Runtime
장점:
- Runtime 교체 가능
- 표준화된 구조
- 확장성 증가
현재 Kubernetes에서는 containerd 사용이 일반적입니다.
Kubernetes kubelet 주요 기능
Pod 관리
kubelet은 Node에 배치된 Pod 상태를 관리합니다.
확인:
kubectl get pods
실제 실행 상태를 Node에서 확인합니다.
Container Health Check
Probe 설정을 실행합니다.
종류:
- Liveness Probe
- Readiness Probe
- Startup Probe
문제 발생 시 Container 재시작 또는 Traffic 제외를 수행합니다.
Node 상태 보고
kubelet은 지속적으로 Node 정보를 API Server에 전달합니다.
보고 정보:
- CPU
- Memory
- Disk
- Network
- Container 상태
Node NotReady 문제와 연결됩니다.
Kubernetes kubelet Heartbeat 동작
kubelet은 일정 주기로 자신의 상태를 보고합니다.
흐름:
kubelet
↓
Heartbeat 전달
↓
API Server
↓
Node 상태 업데이트
Heartbeat가 끊기면:
↓
Node NotReady
상태가 됩니다.
Kubernetes kubelet Configuration
kubelet 설정 파일에는 실행 옵션이 저장됩니다.
예:
/etc/kubernetes/kubelet-config.yaml
주요 설정:
- Cluster 연결 정보
- 인증서
- Runtime Endpoint
- Resource 설정
운영 환경에서 중요한 관리 대상입니다.
Kubernetes kubelet Certificate 관리
kubelet은 API Server와 TLS 통신을 합니다.
필요:
- Client Certificate
- CA Certificate
Certificate 문제가 발생하면:
kubelet
↓
API Server 연결 실패
↓
Node 장애 발생
Certificate 관리는 중요합니다.
Kubernetes kubelet 장애 분석
kubelet 문제 발생 시 확인:
서비스 상태 확인
systemctl status kubelet
Log 확인
journalctl -u kubelet
확인 항목:
- API Server 연결
- Certificate 오류
- Runtime 오류
- Configuration 오류
Kubernetes kubelet과 Node NotReady 관계
대표 흐름:
kubelet 중지
↓
Heartbeat 중단
↓
API Server 감지
↓
Node NotReady 변경
Node 장애 분석에서 가장 먼저 확인하는 Component입니다.
Kubernetes kubelet과 Volume 관리
kubelet은 Pod Volume 연결도 담당합니다.
흐름:
Pod 생성
↓
Volume 요청
↓
kubelet 확인
↓
Storage 연결
↓
Container 실행
PV/PVC 구조와 연결됩니다.
Kubernetes kubelet Resource 관리
kubelet은 Node Resource 상태를 관리합니다.
관리:
- CPU
- Memory
- Disk
- PID
Resource 부족 상황에서는:
- Eviction
- Container 종료
등을 수행합니다.
Kubernetes kubelet Eviction 동작
Node Resource 부족:
↓
kubelet 감지
↓
우선순위 낮은 Pod 제거
↓
Node 보호
Node 안정성을 유지합니다.
Kubernetes kubelet과 Logging
Container Log도 kubelet 환경과 연결됩니다.
구조:
Container
↓
stdout
↓
Node Log
↓
Logging Agent
↓
Loki / Elasticsearch
Logging Architecture와 연결됩니다.
Kubernetes kubelet Monitoring
운영 환경에서는 kubelet Metric을 확인합니다.
대표 Metric:
- Pod Start Time
- Container Restart
- Node Status
- Runtime Error
Prometheus와 연결하여 관리합니다.
Kubernetes kubelet 보안 운영
관리 항목:
- TLS 인증
- 최소 권한
- API 접근 제한
- Certificate Rotation
Worker Node 보안의 핵심입니다.
Kubernetes kubelet 운영 전략
Production 환경:
kubelet Monitoring
↓
Certificate 관리
↓
Runtime 상태 확인
↓
Resource 관리
↓
장애 대응 준비
안정적인 Worker Node 운영이 가능합니다.
Kubernetes kubelet 장점
| 장점 | 설명 |
|---|---|
| 자동 실행 | Pod 관리 |
| 상태 보고 | Node Monitoring |
| Self Healing 지원 | 장애 복구 |
| Runtime 관리 | Container 운영 |
kubelet은 Kubernetes Worker Node의 핵심 Agent입니다.
자주 묻는 질문
kubelet이 Container를 직접 실행하나요?
아닙니다.
kubelet은 Container Runtime을 통해 실행을 요청합니다.
kubelet이 중지되면 실행 중인 Container도 모두 종료되나요?
즉시 종료되지는 않지만 Cluster 관리와 상태 보고에 문제가 발생합니다.
kubelet은 어디에서 실행되나요?
모든 Worker Node에서 실행됩니다.
마무리
Kubernetes kubelet은 Worker Node에서 Pod 실행과 상태 관리를 담당하는 핵심 Agent입니다.
| 구성 요소 | 역할 |
|---|---|
| API Server | 명령 전달 |
| kubelet | 실행 관리 |
| CRI | Runtime 연결 |
| containerd | Container 실행 |
kubelet 구조를 이해하면 Kubernetes Node 운영, 장애 분석, Container 실행 과정을 깊게 이해할 수 있습니다.
다음 글에서는 Kubernetes Worker Node에서 Container를 실제 실행하는 Kubernetes Container Runtime 완벽 가이드! containerd와 CRI 구조 이해하기를 진행하겠습니다.