쿠버네티스 Statefulset 개념 및 설정

ZER0·2023년 1월 26일
0

Kubernetes

목록 보기
36/39
post-thumbnail

1. 개념

  • 파드에 저장된 데이터 또는 파드의 설정을 stateful하게 유지해야 하는 경우 Statefulset 활용
  • Statefulset으로 생성한 파드는 재생성 시에도 랜덤한 문자열 이름이 아닌 관리자가 정의한 특정 규칙의 이름으로 생성
  • Statefulset으로 생성한 파드의 스토리지는 PVC로만 연결 가능
  • Statefulset에 접근하기 위해서는 headless service 생성 필요

2. Statefulset 생성

  • headless service 생성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    apiVersion: v1
    kind: Service
    metadata:
      name: headless-svc
      labels:
        app: headless-svc
    spec:
      ports:
      - name: http
        port: 80
      clusterIP: None
      selector:
        app: test-sts
    cs
  • statefulset 생성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: test-sts
    spec:
      selector:
        matchLabels:
          app: test-sts
      serviceName: headless-svc
      replicas: 3
      template:
        metadata:
          labels:
            app: test-sts
        spec:
          containers:
          - name: zero
            image: nginx
            ports:
            - containerPort: 8080
    cs

3. statefulset 확인

  • 파드의 이름이 랜덤한 문자열이 아닌 statefulset 생성 시 설정한 test-sts-n 형식으로 생성
  • sts의 파드가 삭제되어도 순차적으로 삭제
  • headless 서비스를 통해 sts 파드 접근

4. 참고

  1. https://www.udemy.com/course/certified-kubernetes-application-developer/
  2. https://nearhome.tistory.com/107
  3. https://malwareanalysis.tistory.com/338
profile
Security Compliance Engineer

0개의 댓글