ETC

[kubernetes] 배포 방법 정리 (고정/롤링/블루-그린/카나리 릴리즈 배포)

lim 2021. 4. 25. 21:19
반응형

 

 

고정 배포

 

 

이전 버전의 모든 컨테이너를 죽이고 새로운 버전 실행하는 방식이다. 이전 버전을 모두 죽인후에 새로운 버전을 띄우는 방식이라 서비스 중단점이 있다.

 

 

 

롤링 배포(Rolling Update)

 

 

기존 버전들을 죽임과 동시에 새로운 버전을 생성하는 방식이다. 새로 생성되는 파드와 죽는 파드의 수를 조절해 가면서 업데이트를 진행하기 때문에. 서비스 중단이 없다. 새로운 컨테이너 생성 비율은 디플로이먼트를 통해서 제어할 수 있다. 이 방식의 단점은 업데이트 프로세스 동안 두 가지 버전의 컨테이너가 동시에 실행되기 때문에 버전 호환성의 문제가 발생할 수 있다. 

 

 

 

불루 그린 릴리즈(Blue-green release)

 

여기서 말하는 블루란 이전 버전을 뜻하고 그린은 새로운 버전을 뜻한다. 일단 이전 버전과 새로운 버전을 모두 띄우고 새로운 버전이 준비되었다고 판단할때 기존 버전의 연결을 서비스로 부터 제거한다. 이 방식의 장적음 서비스 중단점이 없고, 버전 혼재에 따른 문제가 없다는 것이다. 다만 이전 버전과 새 버전을 동시에 실행하기 때문에 리소스가 두배로 필요하다는 단점이 있다. 이 방식은 서비스 매시(Service Mesh) Knative 같은 확장 서비스를 쓰지 않으면 블루 그린 배포는 수동으로 진행된다.

 

 

 

 

카나리 릴리즈(Canary release)

 

먼저 카나리라는 이름의 뜻부터 알아보자. 카나리는 원래 광부들이 탄광에 들어가기 전에 갱도로 먼저 날려보내던 새다. 만약 새가 탄광 안으로 들어가서 나오지 못하면 유독 가스가 있다고 판단하여 내부로 들어가지 않았다고 한다. 카나리아 릴리즈는 새로운 버전을 하나씩 올려보면서 해당 버전이 잘 동작한다 싶으면 기존 버전을 내린다. 그런 다음 또 다시 새로운 버전을 올리는 식으로 배포를 진행한다. 

반응형