토픽 29 / 107·컨테이너 오케스트레이션
StatefulSet
StatefulSet
Kubernetes에서 상태 유지(Stateful) 애플리케이션을 관리하는 워크로드 오브젝트로, Pod에 안정적인 네트워크 ID와 영구 스토리지를 제공하며 순서대로 생성·삭제하여 데이터베이스·메시지 큐 등에 적합
핵심 특징: 안정적 네트워크 ID(pod-0/pod-1/pod-2 고정 이름), 순서 보장(0→1→2 순차 생성, 역순 삭제), 안정적 DNS(pod-name.service-name.namespace.svc.cluster.local), 개별 PVC(각 Pod 전용 PersistentVolumeClaim/Pod 삭제 시에도 PVC 유지)
동작 방식: Headless Service(ClusterIP: None)와 함께 사용, 각 Pod에 고유 ordinal index 부여, 롤링 업데이트 시 역순(N→0) 업데이트, Pod 재생성 시 동일 이름·스토리지 연결
사용 사례: 데이터베이스(MySQL/PostgreSQL/MongoDB 클러스터), 메시지 큐(Kafka/RabbitMQ), 분산 저장소(Elasticsearch/Cassandra), etcd 클러스터
비교
연관: Kubernetes 오브젝트, PersistentVolume, Headless Service, 데이터베이스