쿠버네티스 파드 ( POD )
🚀파드 ( POD ) 의 기능
💡쿠버네티스 파드 (Pod)는 쿠버네티스에서 가장 기본적인 실행 단위입니다. 한 파드는 하나 이상의 컨테이너를 포함하며, 같은 네트워크와 저장소를 공유합니다. 일반적으로 애플리케이션을 실행할 때 컨테이너 하나만 포함하는 경우가 많지만, 여러 개의 컨테이너를 하나의 파드에서 함께 실행할 수도 있습니다.예를 들어, 웹 서버와 로그 수집기가 같은 파드 안에 있을 수 있습니다. 파드 내부의 컨테이너들은 서로 협력하며 하나의 작은 애플리케이션 단위를 형성합니다.
✅ 파드의 특징
1. 컨테이너의 논리적 그룹
- 파드는 하나 이상의 컨테이너로 구성됨 (보통 하나의 컨테이너를 가짐).
- 같은 파드에 속한 컨테이너들은 같은 네트워크 공간 (localhost 공유), 같은 저장소 (볼륨 공유) 를 사용함.
2. 동일한 네트워크 네임스페이스 공유
- 같은 파드 내 컨테이너들은 localhost 를 통해 서로 통신 가능.
- 외부에서는 파드의 IP 주소 를 사용하여 접근.
3. 공유 스토리지 볼륨 사용
- 파드 내 모든 컨테이너가 동일한 볼륨을 공유할 수 있음.
- 컨테이너 간에 데이터를 공유하는 경우 유용.
4. 파드는 개별적인 배포 및 관리 단위
- 쿠버네티스는 개별 파드를 생성, 스케일링, 복제, 삭제 가능.
- 일반적으로 디플로이먼트(Deployment) 또는 스테이트풀셋(StatefulSet) 같은 컨트롤러를 사용하여 관리됨.
✅ 파드의 사용 사례
1. 단일 컨테이너 애플리케이션
- 웹 서버(Nginx, Apache) 같은 단순한 앱 실행.
2. 멀티 컨테이너 애플리케이션
- 하나의 컨테이너는 애플리케이션 실행, 다른 컨테이너는 로깅이나 모니터링 수행.
3. 사이드카 패턴 적용
- 보조 역할을 하는 컨테이너(예: 로그 수집, 프록시)와 함께 배포.
🔍 파드 예제 (YAML)
아래는 Nginx 웹 서버를 실행하는 파드의 예제입니다.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
apiVersion: v1 kind: Pod metadata: name: my-nginx-pod spec: containers: - name: nginx image: nginx:latest ports: 80 - container Port: 80
✨ 파드 vs 컨테이너 차이점
비교 |
컨테이너 (Container) |
파드 (Pod) |
---|---|---|
개념 |
애플리케이션 실행 단위 |
컨테이너를 포함하는 쿠버네티스의 배포 단위 |
네트워크 |
개별적인 네트워크 인터페이스 |
파드 내 컨테이너들은 네트워크 공유 |
볼륨 |
독립적 |
파드 내 컨테이너 간 볼륨 공유 가능 |
실행 방식 |
도커(Docker) 같은 컨테이너 런타임에서 실행 |
쿠버네티스에서 관리 |
📌 정리
- 파드는 쿠버네티스에서 컨테이너를 실행하는 최소 단위
- 같은 파드 내 컨테이너들은 IP와 볼륨을 공유
- 일반적으로 단일 컨테이너를 가지지만, 필요에 따라 여러 개 포함 가능
- 디플로이먼트 같은 컨트롤러를 통해 관리하는 것이 일반적
파드 개념이 이해되면, 다음 단계로 디플로이먼트(Deployment), 서비스(Service) 같은 개념을 학습하는 것이 좋습니다