[k8s] 5-4. StatefulSet
StatefulSet
Pod의 상태, 이름을 보존해주는 컨트롤러
- Pod 이름
- Pod의 볼륨(스토리지)
StatefulSet으로 3개를 실행하게 되면, 0,1,2… 순서로 각각 Pod에 번호가 붙게 된다.
definition 비교
- Deployment vs StatefulSet
serviceName
이 추가됨.
# Deployment definition
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
# StatefulSet definition
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: sf-nginx
labels:
app: nginx
spec:
replicas: 3
serviceName: sf-nginx-service
# podManagementPolicy: OrderdReady (defalut로 설정됌-순차적으로 생성)
# podManagementPolicy: Parallel
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
replicas 변경
kubectl scale statfulset {sf명} --replicas=4
: 4개로 변경
rolling update
kubectl edit statefulset {sf명}
: vim editor로 version change
roll back
kubectl rollout undo statefulset {sf명}
댓글남기기