Kubernetes Pod란?
컨테이너를 묶어서 관리하는 Kubernetes의 최소 단위
Pod Networking
- Kubernetes는 Docker와 달리 Pod 단위로 컨테이너들을 관리합니다.
- Pod는 여러개의 컨테이너로 구성될 수 있으며, 모두 동일한 IP를 부여받을 수 있습니다.
- 동일한 IP를 부여 받게 하는 것이 pause container 덕택입니다.
- 하나의 Pod를 생성하게 되면 그 Pod의 container들은 pause container의 Network Namespace의 Interface IP 하나를 갖게됩니다.
Pod 특징
- Pod 내의 컨테이너는 서로의 IP와 Port를 공유합니다.
(두개 이상의 컨테이너가 하나의 Pod를 통해 배포되었을 때 localhost로 통신이 가능합니다.)
- Pod내의 배포된 컨테이너 간에는 디스크 볼륨을 공유할 수 있습니다.
(같은 Pod안에 있는 컨테이너끼리는 파일을 읽어올 수 있습니다.)
- Pod안에 여러개의 컨테이너가 들어갈 수 있습니다.
Pod 종류
Single Container Pod
하나의 Container에 하나의 Pod를 의미합니다.
Multi Containers Pod
두개 이상의 서로 다른 컨테이너를 포함하고 있는 Pod를 의미합니다.
Multi Container Pods Pattern
- Sidecar Pattern
- Main Container를 보조하기 위해 사용하는 패턴입니다.
- 하나의 컨테이너는 하나의 Pod만 하는것이 효율적이기 때문에 Main Container의 일을 Serve Container가 도와서 실행합니다.
(두개 이상의 컨테이너를 사용하면 컨테이너의 종속성들을 고려해야 하기때문에 난이도는 올라가고 효율은 떨어집니다.)
- Ambassador Pattern
- 외부와 통신을 할 때 임의의 proxy container를 추가하는 패턴입니다.
- 해당 컨테이너를 생성하여 컨테이너들간에 맡은일을 효율적으로 처리할 수 있습니다.
- Adapter Pattern
- 입력된 데이터를 Adapter container가 대신 처리해주는 패턴입니다.
- 해당 Adapter container를 생성해줘 Main container의 일처리를 보다 효율적으로 처리할 수 있습니다.