✏️ 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
kube apply -f {파일명}
방법 2
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로 롤백된거 확인 할 수 있음
📌 요약