Pod — 가장 작은 배포 단위
Pod는 Kubernetes에서 배포 가능한 가장 작은 단위로, 하나 이상의 컨테이너를 묶어 실행합니다. Pod는 언제든 재생성될 수 있는 휘발성 자원이라, Pod의 IP나 존재 자체를 신뢰해서는 안 됩니다.
Deployment — Pod를 관리하는 컨트롤러
Deployment는 지정한 개수의 Pod가 항상 유지되도록 감시하고, 롤링 업데이트·롤백 같은 배포 전략을 선언적으로 관리합니다. Pod가 죽으면 Deployment가 감지해 새 Pod를 자동으로 만들어냅니다.
Service — 안정적인 접속 지점
Pod는 재생성될 때마다 IP가 바뀌므로, 클라이언트가 직접 Pod IP를 바라보면 연결이 계속 끊깁니다. Service는 여러 Pod 앞단에서 고정된 이름과 IP를 제공하고, 뒤에 있는 Pod들로 트래픽을 로드밸런싱합니다. 즉 Deployment가 "몇 개를 어떻게 띄울지"를 담당한다면, Service는 "그것들에 어떻게 접속할지"를 담당합니다.