본문 바로가기

IT 엔지니어/CLOUD

K8S - STATEFULSET

StatefulSet
상태를 가지는(=stateful) 애플리케이션 관리 리소스

apiVersion: ***apps/v1***
kind: ***StatefulSet***
metadata:
  name: set

spec:
  replicas: 3
  selector:
    matchLabels:
      app: webui
  template:
    metadata:
      name: mypod
      labels:
        app: webui
    spec:
      containers:
        - name: mycon
          image: nginx:1.14
          
  
 kubectl describe sts [set]

 

 

 

 

🔧 StatefulSet의 주요 특징

기능 설명

고정된 이름(hostname) 각 Pod는 고유한 이름
순차생성  
예: web-0, web-1, web-2  
순서 보장 Pod의 생성 및 종료가 순차적으로 일어납니다.
web-0생성 후 web-1생성  
고정된 스토리지(PersistentVolume) 각 Pod는 자신만의 Persistent Volume을 갖고 재시작해도
동일한 볼륨 사용.  
재시작 후에도 상태 유지 Pod가 삭제되더라도
같은 이름과 같은 스토리지를 갖고 재생성  
스테이트풀 앱에 적합 데이터베이스(MySQL, MongoDB), Zookeeper, Kafka 등 상태 유지를 필요로 하는 서비스에 적합합니다.

📦 Deployment vs StatefulSet 비교

항목                                                              Deployment                                  StatefulSet

이름 보장 ❌ 랜덤 이름 ✅ 정해진 이름 (예: db-0, db-1)
순서 보장 ❌ 없음 ✅ 생성 및 삭제 순서 보장
볼륨 공유 가능 고유 볼륨 할당
용도 Stateless 앱 (웹 서버 등) Stateful 앱 (DB, 캐시 등)

'IT 엔지니어 > CLOUD' 카테고리의 다른 글

K8S - ingress  (0) 2025.05.31
K8S - Service  (0) 2025.05.30
k8S - REPLICASET  (0) 2025.05.28
K8S- daemonset  (0) 2025.05.27
K8S Controller  (0) 2025.05.26