본문 바로가기
클라우드/쿠버네티스

⚓ CKAD 정복 시리즈: 쿠버네티스의 가장 작은 단위, Pod의 개념과 생명주기 완벽 해부

by gasbugs 2026. 1. 31.

안녕하세요! 쿠버네티스 자격증을 준비하는 분들이라면 반드시 넘어야 할 첫 번째 관문, Pod(파드)에 대해 심층적으로 알아보겠습니다. 🚀

쿠버네티스에서 컨테이너를 실행할 때 가장 기본이 되는 단위인 Pod는 단순히 '컨테이너 하나'를 의미하지 않습니다. 시험에서 자주 출제되는 Pod의 구조와 상태 변화(Lifecycle)를 10분 만에 마스터해 보시죠!


1. Pod란 무엇인가? 🧊

Pod는 쿠버네티스에서 생성하고 관리할 수 있는 최소 배포 단위입니다. 하나 이상의 컨테이너를 포함하며, 이 컨테이너들은 네트워크와 저장 공간을 공유합니다.

  • 함께 사는 이웃: Pod 내의 컨테이너들은 localhost를 통해 서로 통신할 수 있습니다. 🏠
  • 공유 자원: 볼륨(Volume)을 통해 데이터를 공유하고, 동일한 IP 주소를 가집니다.
  • 단일 목적: 보통 하나의 Pod에는 하나의 주 컨테이너가 들어가지만, 로그 수집기나 프록시 같은 보조 역할을 하는 사이드카(Sidecar) 컨테이너가 함께 포함될 수 있습니다.

2. Pod의 생명주기(Lifecycle) 🔄

Pod는 생성부터 삭제까지 특정 단계를 거칩니다. kubectl get pod를 쳤을 때 보이는 STATUS 값이 바로 이 상태를 나타냅니다.

① Pending (대기) ⏳

Pod 정의가 시스템에 수락되었지만, 하나 이상의 컨테이너가 아직 생성되지 않은 상태입니다.

  • 노드에 스케줄링되기 전이거나, 이미지를 내려받는 중(ImagePullBackOff)일 때 주로 나타납니다.

② Running (실행 중) ✅

Pod가 노드에 할당되었고, 모든 컨테이너가 생성되었습니다. 최소 하나 이상의 컨테이너가 실행 중이거나 시작/재시작 프로세스에 있는 상태입니다.

③ Succeeded (성공) 🎉

Pod 내의 모든 컨테이너가 성공적으로 종료되었으며, 재시작되지 않는 상태입니다. 주로 한 번 실행되고 끝나는 Job 리소스에서 볼 수 있습니다.

④ Failed (실패) ❌

Pod 내의 컨테이너 중 적어도 하나가 실패(0이 아닌 종료 코드)로 종료된 상태입니다.

⑤ Unknown (알 수 없음) ❓

노드와의 통신 문제 등으로 인해 Pod의 상태를 확인할 수 없는 경우입니다.


3. 컨테이너의 상태와 재시작 정책 (Restart Policy) 🛠️

Pod의 상태뿐만 아니라 그 내부 컨테이너의 상태도 중요합니다. Waiting, Running, Terminated 세 가지로 나뉘며, 문제가 생겼을 때 어떻게 행동할지는 restartPolicy가 결정합니다.

  • Always (기본값): 컨테이너가 종료되면 항상 재시작합니다. (웹 서버 등에 적합)
  • OnFailure: 에러가 발생하여 종료된 경우에만 재시작합니다.
  • Never: 절대 재시작하지 않습니다.

4. 진단 도구: 프로브(Probes) 🔍

CKAD 시험에서 비중 있게 다뤄지는 내용입니다. Pod가 "정말" 건강한지 확인하는 세 가지 방법이 있습니다.

  1. Liveness Probe: 컨테이너가 살아있는지 확인합니다. 실패하면 컨테이너를 재시작합니다.
  2. Readiness Probe: 컨테이너가 서비스 요청을 받을 준비가 되었는지 확인합니다. 실패하면 해당 Pod를 엔드포인트(Service)에서 제외합니다. 🚫
  3. Startup Probe: 컨테이너 내부 애플리케이션이 시작되었는지 확인합니다. 완료될 때까지 다른 프로브를 비활성화합니다.

5. CKAD 실전 팁: 문제 해결하기 💡

시험 도중 Pod에 문제가 생겼다면 다음 순서로 점검하세요!

  1. kubectl get pods: 전반적인 상태와 재시작 횟수를 확인합니다.
  2. kubectl describe pod <pod-명>: 하단의 Events 섹션을 보세요. 이미지를 못 가져오는지, 스케줄링이 안 되는지 가장 명확하게 알려줍니다. ⭐
  3. kubectl logs <pod-명>: 컨테이너 내부 애플리케이션에서 발생한 에러 로그를 확인합니다.

🌟 요약 및 마무리

  • Pod는 쿠버네티스의 최소 단위이며 컨테이너 간 자원을 공유합니다.
  • 생명주기는 Pending -> Running -> Succeeded/Failed 흐름을 가집니다.
  • Probes를 설정하여 자가 치유(Self-healing) 능력을 극대화할 수 있습니다.

Pod의 생명주기를 완벽히 이해하는 것은 복잡한 MSA 환경에서 장애를 추적하는 가장 기초적인 근육이 됩니다. 공부하시다가 막히는 부분이 있다면 언제든 물어봐 주세요! 🎊