ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쿠버네티스 DaemonSet Update
    클라우드 교육/kubernetes 2023. 5. 8. 15:25

     

    데몬셋이란 각 노드마다 하나씩의 파드만을 생성하는 특수한 레플리카셋이다. 이를 업데이트하는 방법은 두가지가 있는데, 

    OnDelete와 RollingUpdate이다. 

     

     

     

     

    OnDelete

     

    업데이트를 했을때 바로 수정되지 않고, 파드에 문제가 생겨 파드가 다시 생성될 때 적용된다.

     

     

     

    아래는 OnDelete의 데몬셋 예시이다. 

     

     

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: s8
    spec:
      updateStrategy:
        type: OnDelete
      selector:
        matchLabels:
          app: sample-app
      template:
        metadata:
          labels:
            app: sample-app
        spec:
          containers:
            - name: nginx-container
              image: nginx:1.12

     

    아래는 위 yaml로 데몬셋을 생성해서 업데이트 하고 업데이트가 되는 과정을 확인한 결과이다. 

     

     

     

    이번엔 RollingUpdate를 알아보자. 

     

    기본값으로 입력하지 않으면 RollingUpdate가 적용된다. 디플로이먼트와 마찬가지 이지만, 데몬셋은 하나의  노드에 하나의 파드만 생성하므로 최대 파드수 같은건 설정할 수없다. 동시에 정지 가능한 최대 파드 수(maxUnavailable)만 지정하면 된다. 

     

    maxUnabailable 값의 기본은 1이며 0으로는 지정할 수 없다. 

     

    아래는 기본적인 yaml 값이다. maxUnavaliable값을 2로 했다. 

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: s9
    spec:
      updateStrategy:
        type: RollingUpdate
        rollingUpdate:
          maxUnavailable: 2
      selector:
        matchLabels:
          app: sample-app
      template:
        metadata:
          labels:
            app: sample-app
        spec:
          containers:
            - name: nginx-container
              image: nginx:1.12

     

     

     

     

    로그를 보면 왼쪽은 maxUnavaliable 값을 2로 했고, 오른쪽은 1로 했다.

    왼쪽은 두개가 같이 없어졌다가 같이 생기는 반면 오른쪽은 하나씩 사라져서 하나씩 생성되는 것을 확인할 수 있다. 

     

     

     

     

    '클라우드 교육 > kubernetes' 카테고리의 다른 글

    쿠버네티스 Deployment Update  (0) 2023.05.08
    쿠버네티스 명령어 scale  (0) 2023.05.07
    쿠버네티스 컨테이너 설정 변경  (1) 2023.05.06
    쿠버네티스 DNS  (0) 2023.05.06
    쿠버네티스 메타데이터  (0) 2023.05.03

    댓글

Designed by Tistory.