최대 1 분 소요

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명}

댓글남기기