6.5 스테이트풀세트

상태가 있는 파드들을 관리하는 컨트롤러

스테이트풀 세트를 사용하면 볼륨을 사용해서 특정 데이터를 저장한 후 파드를 재시작했을 때 해당 데이터를 유지

6.5.1 스테이트풀세트 사용하기

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 처럼 숫자가 붙음

파드가 삭제될 때는 큰 숫자가 붙은 파드부터 순서대로 삭제

6.5.2 파드를 순서 없이 실행하거나 종료하기

spec:
	podManagementPolicy: Parallel

6.5.3 스테이트풀세트로 파드 업데이트하기

6.6 잡

실행된 후 종료해야 하는 성격의 작업을 실행시킬 때 사용하는 컨트롤러

특정 개수만큼의 파드를 정상적으로 실행 종료함을 보장

6.6.1 잡 사용하기

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 # 자동 최대 재시작 횟수

6.6.2 잡 병렬성 관리

잡 하나가 몇 개의 파드를 동시에 실행할지를 ‘잡 병렬성’ 이라고 함