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 |