쿠버네티스 배포 전략 : 롤링 업데이트 전략 vs 재생성 전략

반응형
728x90
반응형

쿠버네티스 배포 전략

쿠버네티스 배포의 장점 중 하나는 무중단 배포이다. 쿠버네티스가 무중단 배포를 진행하는데에 사용하는 전략은 총 2가지가 있다. 미리 말해두자면, 앞으로 설명할 전략 중 재생성 전략은 무중단 배포로 볼 수가 없다. 2가지 전략에 대해 간단히 알아보자.

 

 

롤링 업데이트 전략 (Rolling Update)

.spec.strategy.type==RollingUpdate

 

쿠버네티스 배포 전략의 default 전략이다. 여러개로 띄어져있는 pod 들을 정해진 개수만큼 새로운 pod를 띄우고, 기존의 pod를 종료시킨다. 새로운 pod가 띄어지면서 기존의 pod가 삭제되어 여러 버전의 pod가 띄어져있을 수 있는 전략이다. 하지만 이런 방식으로 인해 2가지 버전의 pod가 실행되어 사용자에게 혼란을 줄 수 있는 단점이 있다.

 

더 쉽게 이해하기 위해 상황을 보자.

 

1) 현재 하나의 서비스가 5개의 pod로 띄어져있다.
2) 새로운 버전이 배포되었다.
3) 새로운 버전의 pod가 2개가 띄어지는 중이고, 기존의 pod 2개가 삭제중이다. (총 pod는 7개)
4) 기존의 pod 2개가 삭제 완료되었고, 새로운 pod 2개가 띄어졌다. (신규버전 2개, 기존 3개)
5) 위와 같은 방식으로 5개의 pod 모두가 신규 버전으로 변경된다. (2개의 버전이 함께 띄어있는 순간이 존재한다.)

 

롤링 업데이트 전략을 설정할 경우 아래 2가지 설정 용어를 알아두자.

 

  • maxSurge

업데이트 진행 중에 동시에 최대로 생성할 수 있는 파드의 수

.spec.strategy.rollingUpdate.maxSurge

 

  • maxUnavailable

업데이트 진행 중에 동시에 사용할 수 없는 파드의 수

.spec.strategy.rollingUpdate.maxUnavailable

 

 

재생성 전략 (Recreate)

.spec.strategy.type==Recreate

 

기존 pod를 모두 제거한 후, 새로운 버전의 pod가 배포된다. 위 롤링 업데이트 전략이 무중단 배포라고 했다면, 재생성 전략은 기존 pod를 제거한 후, 새로운 버전의 pod가 띄어지는 동안 pod가 0개인 순간이 있는데, 해당 순간엔 서비스 이용이 불가능해지기 때문에 무중단 배포라고 할 수 없다. 롤링 업데이트 전략의 단점이였던 2가지 버전의 서비스가 실행됬던 것은 재생성 전략에서는 해결된 셈이다.

 

쿠버네티스는 무중단 배포의 장점이 있기 때문에 재생성 전략 보다는 롤링 업데이트 전략이 더 많이 사용되어지고, default로 설정되어있음을 인지하자.

 

 

 

반응형

Designed by JB FACTORY