Kubernetes의 Pod 및 Static Pods

개요

Pod는 Kubernetes에서 배포 가능한 가장 작은 단위이며, 하나 이상의 컨테이너를 포함할 수 있어.
이와 달리, Static Pod는 API Server를 거치지 않고 kubelet이 직접 실행하는 특별한 유형의 Pod야.


Pod의 개념 및 특징

Pod란?

  • 컨테이너를 감싸는 논리적 단위로, Kubernetes에서 컨테이너를 직접 배포하지 않고 Pod 단위로 관리해.
  • 하나의 Pod에는 단일 컨테이너 또는 여러 개의 컨테이너가 포함될 수 있어.

Pod의 주요 특징

특징설명
단일 네트워크 공간Pod 내의 모든 컨테이너는 같은 네트워크 네임스페이스를 공유하여 localhost로 통신 가능
공유 스토리지 사용emptyDir, hostPath, Persistent Volume을 사용하여 컨테이너 간 데이터 공유
라이프사이클 관리Pending → Running → Succeeded/Failed의 상태를 가짐
Ephemeral (휘발성)기본적으로 Pod는 장애 발생 시 재생성되지 않으며, 이를 위해 ReplicaSet 또는 Deployment를 사용해야 함

Pod의 구성 요소

  • spec: 컨테이너, 볼륨, 네트워크 설정을 정의
  • status: Pod의 현재 상태 (Running, Pending, Failed 등)
  • metadata: Pod 이름, 레이블, 어노테이션 등

단일 컨테이너 vs 다중 컨테이너 Pod

Pod 유형설명
단일 컨테이너 Pod하나의 애플리케이션 컨테이너만 포함
다중 컨테이너 Pod보조 컨테이너(Sidecar, Adapter 등)를 포함하여 함께 동작

💡 다중 컨테이너 Pod 예제:

  • Sidecar Pattern: 로그 수집기, 프록시 등을 추가
  • Adapter Pattern: 데이터를 변환하여 다른 컨테이너에 전달

Static Pod

Static Pod란?

  • kubelet이 직접 실행하는 Pod으로, Kubernetes API Server를 거치지 않고 관리됨.
  • 일반적인 Pod와 달리, Deployment, ReplicaSet 등의 컨트롤러로 관리되지 않음.

Static Pod의 특징

특징설명
API Server 없이 실행kubelet이 직접 YAML 파일을 읽어 Pod를 실행
Manifest 파일 기반/etc/kubernetes/manifests/ 경로에 있는 YAML 파일을 기반으로 Pod 실행
자동 복구 없음Pod가 종료되면 자동으로 복구되지 않음
로그 확인 방법 다름kubectl이 아닌 kubelet 로그 (journalctl -u kubelet)로 확인

Static Pod 예제

📌 /etc/kubernetes/manifests/static-pod.yaml

apiVersion: v1
kind: Pod
metadata:
name: static-pod-example
labels:
app: static-test
spec:
containers:
- name: busybox
image: busybox
command: ["sleep", "3600"]

💡 해당 파일을 /etc/kubernetes/manifests/ 폴더에 저장하면 kubelet이 자동으로 실행해.

Static Pod의 활용 사례

  • Kubernetes Control Plane 노드 구성 (API Server, Controller Manager, etcd 등)
  • 테스트 및 디버깅 목적

Pod 및 Static Pod의 차이점

비교 항목일반 PodStatic Pod
생성 방식kubectl apply -fkubelet이 직접 실행
관리 주체Kubernetes API Serverkubelet
컨트롤러 사용Deployment, ReplicaSet 가능불가능
배포 방식YAML 파일로 선언 후 kubectl apply/etc/kubernetes/manifests/ 폴더에 YAML 배치
API 조회 가능 여부kubectl get pods 가능kubectl get pods로 조회 가능하나 관리되지 않음

정리

Pod는 Kubernetes에서 가장 기본적인 배포 단위이며, 여러 컨테이너가 함께 실행될 수 있어.
Static Pod는 kubelet이 직접 실행하는 Pod로, API Server 없이도 동작 가능해.
✅ Static Pod는 컨트롤러가 관리하지 않기 때문에 주로 Kubernetes Control Plane에서 사용돼.

댓글 달기

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