상태가 있는 파드들을 관리하는 컨트롤러
스테이트풀 세트를 사용하면 볼륨을 사용해서 특정 데이터를 저장한 후 파드를 재시작했을 때 해당 데이터를 유지
statefulset.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-statefulset-service
labels:
app: nginx-statefulset-service
spec:
ports:
- port: 80
name: web
cluseterIP: None
selector:
app: nginx-statefulset-service
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx-statefulset
serviceName: "nginx-statefulset-service"
replicas: 3
template:
metadata:
labels:
app: nginx-statefulset
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx-statefulset
image: nginx
ports:
- containerPort: 80
name: web
$ kubectl apply -f statefulset.yaml
web-0,1,2 순서대로 파드 생성
파드 이름에 UUID형식의 접미사가 붙는 것이 아닌 0,1,2 처럼 숫자가 붙음
파드가 삭제될 때는 큰 숫자가 붙은 파드부터 순서대로 삭제
spec:
podManagementPolicy: Parallel
실행된 후 종료해야 하는 성격의 작업을 실행시킬 때 사용하는 컨트롤러
특정 개수만큼의 파드를 정상적으로 실행 종료함을 보장
apiCersion: batch/1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4 # 자동 최대 재시작 횟수
잡 하나가 몇 개의 파드를 동시에 실행할지를 ‘잡 병렬성’ 이라고 함