Study/Kubernetes

[Kubernetes]Deployment 업데이트 전략

seomj 2024. 5. 1. 14:27

Deployment를 배포하는, 업데이트하는 전략에 대해 정리해보고자 한다.

카카오 클라우드 스쿨에서 공부하며 배웠던 지식이지만, 정리해두지 않아 이번 기회에 간단하게나마 정리한다.


크게 3가지로 분류가 가능하다.

  • Rolling(Rolling Upadte, Recreate)
  • Blue/Green
  • Canary

https://techiezhub.medium.com/blue-green-canary-rolling-updates-deployments-in-kubernetes-58a722f43c8

Rolling Update

 

k8s의 기본 값으로 설정되어 있다.

pod를 하나씩 이전 버전에서 새 버전으로 교체한다. 이전 버전의 pod를 하나씩 줄이며 새로운 버전의 pod를 하나씩 띄운다. 이렇게 순차적으로 전환한다.

배포 중 추가 자원을 요구하지만 서비스 Down Time이 없다. 하지만 이전의 버전과 새로운 버전이 공존하는 시간이 발생한다.

 

Recreate

기존 pod를 모두 삭제한 후 새로운 pod를 생성한다. 

이는 Rolling Update와 달리 Down Time이 발생한다. 

 

Blue/Green

이전 버전과 새로운 버전을 모두 서버에 준비하고 한번에 교체하는 방식이다.

Down Time이 존재하지 않고(무중단 방식), 롤백이 쉽고, 이전 버전과 새로운 버전이 공존하는 시간 문제를 해결할 수 있다.

하지만 배포 시 시스템 자원을 2배로 사용하게 된다.

 

Canary

이전 버전과 새로운 버전을 구성하여 일부 트래픽을 새로운 버전으로 분산시켜 테스트를 진행한다. 이때 문제가 없다면 점진적으로 비율을 높여 새로운 버전으로 옮겨간다.

성능 모니터링에 유용하다. 위험을 빠르게 감지할 수 있다. 문제가 생기면 다시 이전 버전으로 되돌아갈 수 있다. 

 

 

 

참고

https://nearhome.tistory.com/106

https://willseungh0.tistory.com/55

https://onlywis.tistory.com/10