쿠버네티스에서 Persistent Volume(PV)는 클러스터에서 관리하는 스토리지 리소스이고, Persistent Volume Claim(PVC)는 사용자가 해당 스토리지를 요청하는 방식이다.
StatefulSet은 상태를 가지는 (Stateful) 애플리케이션을 관리하는 쿠버네티스 컨트롤러이다.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-db
spec:
serviceName: "my-db"
replicas: 3
selector:
matchLabels:
app: my-db
template:
metadata:
labels:
app: my-db
spec:
containers:
- name: my-db
image: mysql:latest
volumeMounts:
- name: data
mountPath: /var/lib/mysql
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
Job은 일회성 또는 특정 횟수만큼 실행되는 작업을 관리하는 오브젝트이다.
apiVersion: batch/v1
kind: Job
metadata:
name: example-job
spec:
template:
spec:
containers:
- name: batch-job
image: busybox
command: ["echo", "Hello, Kubernetes Batch Job!"]
restartPolicy: Never
backoffLimit: 4 # 실패 시 최대 4번 재시도
apiVersion: batch/v1
kind: CronJob
metadata:
name: daily-backup
spec:
schedule: "0 0 * * *" # 매일 자정
jobTemplate:
spec:
template:
spec:
containers:
- name: backup
image: busybox
command: ["echo", "Backing up data..."]
restartPolicy: OnFailure