pod
- k8s에서 생성할 수 있는 가장 작은 오브젝트
- 파드 내의 모든 컨테이너는 다음을 공유함
- 사용량이 늘어나서 컨테이너 인스턴스를 추가 배포해야 할 경우 파드 내에서 컨테이너만 늘리는 것이 아니라, 파드를 여러 개로 늘림
구성
- 일반적으로 1 pod : 1 container
- but 단일 파드는 다중 컨테이너를 가질 수 있음 1 pod : N container
- 그러나 일반적으로 동일한 종류의 컨테이너가 하나의 파드에 여러 개 배포되지는 않음
- 주로 같이 쌍으로 사용하는 컨테이너들의 경우(ex. 메인+로그수집)는 단일 파드에 배포되기도 함
- 이렇게 단일 파드에 배포된 다중 컨테이너들은 같은 네트워크 공간을 공유하기 때문에 서로 localhost로 직접 통신할 수 있음
- 또한 같은 저장공간을 공유할 수도 있음
그림 출처
역할
파드는 동일한 논리적 app 그룹을 하나의 단위로 캡슐화 시킴
- ex) 1 pod = 1 main app + 1 sub app
- 파드 배포시 이 2개의 컨테이너를 동시에 배포
- 배포, 확장, 조정, 모니터링, 실패 복구 등의 기능을 지원
- 파드 개념이 없다면 애플리케이션을 확장할 때 운영 복잡성이 증가하고 배포 관리 작업이 복잡해질 것임
- ex) app컨테이너와 도우미 컨테이너를 쌍으로 배포해야 하는 경우, app컨테이너가 내려가면 도우미도 내려야하는 식으로 관리 포인트가 늘어남