본문 바로가기
Kubernetes(k8s)/따배쿠(따라하면서 배우는 쿠버네티스) 학습

[k8s]Kubernetes - Deployment & Rolling Update

by 열정주니어 2023. 2. 23.
반응형

Deployment

  • ReplicaSet을 제어해주는 부모 역할
    • ReplicaSet을 컨트롤해서 Pod수를 조절
  • Deployment의 목적
    • Rolling Update & Rolling Back

 

Rolling Update란?

  • 서비스의 중단 없이 버전을 업데이트 하는 것
    • pod 인스턴스를 점진적으로 새로운것으로 업데이트

 

Deployment definition

  • Rolling Update 기능을 제외하면 ReplicaSet과 Deployment 똑같음

 

Deployment example

  • create -f를 통해 Deployment 실행
    • kubectl create -f deploy-nginx.yaml
  • get을 통해  Deployment, ReplicaSet, Pod 확인
    • kubectl get deployments
    • kubectl get rs
    • kubectl get pods
  •  Deployment 생성 -> Deployment가 ReplicaSet 생성 -> ReplicaSet이 Pod 생성
    • pod 지우면 Replicaset이 보장 수에 맞게 pod 생성
    • Replicaset 지우면 pod&Replicaset 삭제 -> Deployment가 Replicaset 생성, Replicaset이 pod 생성
    • Deployment 지우면 세개 모두 삭제

 

Deployment Rolling Update & Rolling Back

  • Rolling Update
    • rolling update 커맨드 
      • kubectl set image deployment <deploy_name> <container_name>=<new_version_image> --record
      • --record는 업데이트 과정을 history로 기록하는 옵션

  • Controlling Rollling Update
    • rolling update 상태 확인
      • kubectl rollout status deployment <deploy_name>
    • rolling update 일시정지/재시작 
      • kubectl rollout pause/resume deployment <deploy_name>
  • RollBack
    • rolling update 히스토리 확인
      • kubectl rollout history deployment <deploy_name>
    • 바로 전단계 버전으로 rollback
      • kubectl rollout undo deploy <deploy_name>
    • 특정 시점 전단계 버전으로 rollback
      • kubectl rollout undo deploy <deploy_name> --to-revision=3
      • --to-revision은 revision 값으로 롤백하는 옵션
      • 3번 시점 버전으로 rollback 할경우 history에 3번 시점 사라지고 3번시점은 버전은 현재시점+1 시점의 버전이 됨
        • history에 1, 2, 3, 4, 5가 있을 때, 3으로 롤백할 경우 3번 사라지고 6번이 3번 버전이 되어 history에 1,2,4,5,6이 남게 됨

 

Rolling Update Deployment Example

  • revisionHistoryLimit
    • history 제한 수
  • progressDeadlineSeconds
    • 해당 시간동안 업데이트 못하면 업데이트 취소
  • maxSurge
    • 롤링 업데이트시 최대 pod개수
      • replicas(=3)의 25%(0.75)를 반올림한 값(1)을 replicas(3)에 더한 값(4)
      • 값이 클수록 업데이트 속도 빠름
      • 얼마나 빠르게 업데이트 할 것인지 커스터마이징 가능
  • maxUnavailable
    • 터미네이팅 조절
  • annotations
    • 쿠버네티스의 동작방식 컨트롤 서포트
    • yaml파일을 이용하여 업데이트 시키는 방법
    • yaml파일을 편집하여 version 변경하고 apply를 통해 업데이트

 

Reference

따배쿠 18강

 

반응형