1. Pod 개요
- 정의: Kubernetes에서 컨테이너를 감싸는 가장 작은 배포 단위
- 역할:
- 컨테이너 실행 환경 제공
- 네트워크/스토리지 공유
- 컨테이너 생성·종료 라이프사이클 관리
- 관계:
- 보통 Pod 1개 ↔ 컨테이너 1개 (1:1)
- 확장(Scale up)은 Pod 개수를 늘리는 방식으로 함
- 단순 확장이 목적이면 하나의 Pod에 같은 컨테이너 여러 개를 넣지 않음
2. Pod 확장 시나리오
- 단일 노드 확장: 동일 노드에 새로운 Pod 생성
- 멀티 노드 확장: 새로운 노드 추가 후 Pod를 해당 노드에 생성
- 축소(Scale down): 기존 Pod 삭제
3. 멀티 컨테이너 Pod
- 가능하지만 희귀한 사용 사례
- 주 용도:
- Helper 컨테이너가 메인 애플리케이션 컨테이너를 지원
- 예: 데이터 처리, 파일 가공 등 부가 작업
- 특징:
- 같은 Pod 안의 컨테이너는 같은 네트워크 네임스페이스 사용 (localhost 통신 가능)
- 같은 스토리지 볼륨 공유 가능
- 함께 생성되고 함께 종료됨
4. Docker 컨테이너 대비 Pod의 장점
- Docker 단독 사용 시:
- 컨테이너 간 네트워크·스토리지 연결 직접 설정 필요
- 매핑 관계 수동 관리
- 메인 컨테이너 종료 시 관련 컨테이너를 직접 정리
- Pod 사용 시:
- Kubernetes가 네트워크·스토리지 공유 자동 설정
- 컨테이너 그룹의 생성·종료를 함께 관리
- 매핑 관리 불필요