12.02 TIL - Kubernetes Pod

이서준·2025년 12월 2일

TIL

목록 보기
13/24

Pod

개념

  • Kubernetes에서 배포 가능한 가장 작은 단위
  • 하나 이상의 컨테이너가 함께 실행되는 논리적 그룹
  • Pod 내부의 컨테이너는 서로 밀접한 작업을 수행
  • 동일한 환경(네트워크/스토리지)을 공유

특징

가장 작은 배포 단위

  • Kubernetes에서 직접 실행 가능한 최소 객체이며, 모든 애플리케이션은 Pod 형태로 동작

하나 이상의 컨테이너 그룹

  • Pod 안에는 하나의 메인 컨테이너 또는 여러 개의 보조 컨테이너(sidecar, init container)가 포함

네트워크 네임스페이스 공유

  • Pod내부 컨테이너는 다음을 함께 사용
    • 동일한 IP
    • localhost 기반 통신
    • Port 공간 공유 (포트 충돌 발생 가능)

스토리지 공유 가능

  • Pod은 Volumes를 정읳할 수 있으며, 이를 컨테이너에 마운트하여 파일 시스템을 공유

휘발성 객체

  • Pod은 재생성 되면 새로운 IP를 받으며 상태가 유지되지 않음 (상태 유지가 필요하면 StatelfulSet 사용)

상위 오브젝트에 의해 관리

  • Pod 자체를 직접 생성할 수 있으나, 실제 운영 환경에서는 다음 컨트롤러가 Pod을 자동으로 생성/관리
    • Deployment
    • StatefulSet
    • DaemonSet

구성 요소

apiVersion

  • API 버전

kind

  • Pod Object 정의

metadata

  • 해당 pod의 metadata 정의
  • name: pod의 이름을 정의

spec

  • pod의 구성을 정의 (상세 스펙 정의)
  • containers
    • 파드에 포함될 컨테이너 정의
      • name: 컨테이너 이름 정의
      • image: 사용될 이미지를 정의
      • volumeMounts: 컨테이너에 마운트할 볼륨을 정의

예시

apiVersion: v1
kind: Pod
metadata:
  name: hello-pod
spec:
  containers:
  - name: hello-container
  image: nginx
  ports:
  - containerPort: 8080

적용 명령

kubectl apply -f hello-pod.yaml

상태 확인

kubectl get pods
kubectl describe pod hello-pod

Pod 접근

kubectl port-forward pod/hello-pod 8080:80
profile
Allons-y

0개의 댓글