섹션5: Application Lifecycle Management - Rolling Updates and Rollback

aeiou·2022년 3월 1일
0

Udemy-CKA

목록 보기
3/6

✏️ Rollout & Versioning

  • Deployment 생성하면 rollout(rolling update)하고, 새 rollout은 새로운 deployment 버전을 만듦(Revision 1)
  • (컨테이너 버전 업데이트 되면) rollout(rolling update)이 작동하고, 새 Deployment 버전이 생성됨(Revision 2)

→ 이를 통해 배포 변경 사항을 추적하고 필요한 경우 이전 버전의 Deployment 롤백할 수 있습니다.

  • 위 명령을 통해 rollout status 확인가능함
  • rollout의 history , revision도 볼 수 있음

📌 Deployment Strategy

Recreate Strategy

  • 기존에 배포 되어있는 application 모두 삭제 -> 새로운 버전 application 재생성
  • 문제점: 삭제 후 새버전 업데이트 되는 사이에 application이 다운되어 접근 불가능함

Rolling update strategy

  • (Deployment default strategy)
  • 이전 버전 하나 삭제 -> 새로운 버전 하나씩 교체

  • desrciebe 하면 상세 정보가 다름
  • Recreate : 이전 replica set 이 0으로 scale down -> 새 replica set 최대 5로 scale up
  • Rolling : 하나씩 축소되고, 하나씩 늘어남

📌 update 하는 방법

방법 1

  • yaml 파일 수정하고, apply 하면됨
kube apply -f {파일명}

방법 2

  • kubectl command
kubectl set image deployment/{deployment이름} {이미지명}

📌 Deployment upgrade 내부 동작 원리

첫 생성
(1) Replicaset을 자동으로 생성하여, replicas 수를 충족하는 데 필요한 POD 생성함.

application 업그레이드 시

(1) kubernetes 배포 객체는 후드 아래에 새 replica set을 생성하고, 거기에 컨테이너 배포 시작
(2) 이전 replica set의 POD를 동시에 제거

→ kubectl get replicasets 하면, OLD replicasets POD/ NEW replicasets 5 POD

📌 Rollback

  • Deployment는 새 replica set의 POD를 제거하고, 이전 replica set의 이전 POD를 가져옵니다.
  • 따라서 application은 이전 형식으로 돌아감.
  • kubectl get replicasets로 롤백된거 확인 할 수 있음

📌 요약

0개의 댓글