Statefulsets

Statefulsets

StatefulSet은 쿠버네티스(Kubernetes)에서 상태를 유지해야 하는 애플리케이션을 관리하기 위한 워크로드 API 객체입니다.

주요 특징

StatefulSet vs Deployment

특성 StatefulSet Deployment
Pod 식별자 고유하고 영구적 (pod-0, pod-1) 임의 생성
영구 스토리지 PVC 템플릿 지원 별도 구성 필요
배포 순서 순차적 병렬
스케일링 순차적 병렬

사용 사례

기본 YAML 예제

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

제한 사항