Kubernetes

쿠버네티스 파드 ( 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 
이 파드를 생성하면 nginx:latest 컨테이너가 실행되며, 80번 포트에서 HTTP 요청을 받을 수 있습니다.
 

파드 vs 컨테이너 차이점

비교 

컨테이너 (Container)

파드 (Pod)

개념

애플리케이션 실행 단위

컨테이너를 포함하는 쿠버네티스의 배포 단위

네트워크   

개별적인 네트워크 인터페이스

파드 내 컨테이너들은 네트워크 공유

볼륨

독립적

파드 내 컨테이너 간 볼륨 공유 가능

실행 방식

도커(Docker) 같은 컨테이너 런타임에서 실행

쿠버네티스에서 관리


📌 정리

  • 파드는 쿠버네티스에서 컨테이너를 실행하는 최소 단위
  • 같은 파드 내 컨테이너들은 IP와 볼륨을 공유
  • 일반적으로 단일 컨테이너를 가지지만, 필요에 따라 여러 개 포함 가능
  • 디플로이먼트 같은 컨트롤러를 통해 관리하는 것이 일반적

파드 개념이 이해되면, 다음 단계로 디플로이먼트(Deployment), 서비스(Service) 같은 개념을 학습하는 것이 좋습니다

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!