콘텐츠로 바로가기

Kubernetes Pod

Kubernetes의 최소 배포 단위. 하나 이상의 컨테이너가 네트워크와 스토리지를 공유하는 논리 호스트. 컨테이너는 격리 단위, Pod는 배포 단위. 사이드카 패턴(로깅, 프록시)이 Pod의 다중 컨테이너를 활용. `CrashLoopBackOff`: 컨테이너가 ...

sys.entry
M

Me

hyunyoun's Blog

software-engineering-devops1 min read

Kubernetes Pod

Kubernetes의 최소 배포 단위. 하나 이상의 컨테이너가 네트워크와 스토리지를 공유하는 논리 호스트.

핵심 특성

  • 같은 네트워크 네임스페이스: Pod 내 컨테이너들은 localhost로 통신
  • 같은 스토리지 볼륨: 공유 Volume 마운트 가능
  • 원자적 스케줄링: Pod 전체가 하나의 노드에 배치됨
  • 일시적(Ephemeral): Pod는 재시작이 아닌 교체(replace)됨

Pod vs Container

컨테이너는 격리 단위, Pod는 배포 단위. 사이드카 패턴(로깅, 프록시)이 Pod의 다중 컨테이너를 활용.

CODE
spec:
  containers:
    - name: app
      image: myapp:latest
    - name: sidecar-proxy
      image: envoy:latest # 같은 네트워크로 app과 통신

라이프사이클

CODE
Pending → Running → Succeeded/Failed

CrashLoopBackOff: 컨테이너가 반복 실패 시 기하급수적 백오프로 재시작 대기.

Pod를 직접 쓰지 않는 이유

Pod 단독 사용 시 노드 장애에서 자동 복구 불가. 실제 운영에서는 Deployment/StatefulSet/DaemonSet 같은 상위 추상화 사용:

컨트롤러 용도
Deployment 무상태 앱, 롤링 업데이트
StatefulSet DB 등 상태 있는 앱 (고정 ID)
DaemonSet 모든 노드에 1개씩 (모니터링 에이전트)

연결 노트