쿠버네티스 배포 전략 (Rolling, Blue-Green, Canary)

Xabi·2025년 2월 21일

kubernetes

목록 보기
1/20
post-thumbnail

1. Rolling 배포 (Rolling Deployment)

Rolling 배포는 새로운 버전을 단계적으로 배포하는 방법으로, 기존의 환경을 점진적으로 새로운 버전으로 전환하는 방식이다.
무중단 배포를 지향하는 k8s의 디폴트 배포 방식이다.

작동 방식

먼저 새 버전의 일부 인스턴스를 실행한 뒤, 이전 버전의 인스턴스를 점차적으로 종료하고 새로운 버전으로 교체하는 방식으로 진행된다.

장점

서비스는 항상 제공되며, 새로운 버전에서 오류가 발생할 경우 기존 버전으로 신속하게 롤백할 수 있는 장점이 있다.

예시

웹 애플리케이션에서 새로운 기능을 점진적으로 사용자에게 제공하는 구조로, 만약 문제가 발생할 경우 이전 버전으로 쉽게 복원할 수 있는 시스템을 갖춘다.

온라인 쇼핑몰 웹사이트

기존에 운영 중인 웹사이트는 Ver 1.0입니다.
개발팀에서 Ver 1.1을 준비했습니다. Ver 1.1에는 결제 시스템 개선 기능이 포함되어 있습니다.
롤링 배포가 시작됩니다. 서버에서 실행 중인 Ver 1.0 인스턴스의 일부가 Ver 1.1로 교체됩니다.
예를 들어, 인스턴스 10개 중 2개가 먼저 Ver 1.1로 변경되고, 나머지 8개는 계속 Ver 1.0입니다.
이 상태에서 사용자의 요청이 들어올 때, 두 버전의 인스턴스에서 랜덤하게 배포됩니다.
사용자가 Ver 1.1의 새로운 기능을 사용할 수 있습니다.
모든 인스턴스가 Ver 1.1로 업데이트될 때까지 이 과정을 반복합니다.
문제가 발견되면, 새로운 인스턴스에서 문제를 해결하고, 롤백을 통해 이전 버전(Ver 1.0)으로 돌릴 수 있습니다.

2. Blue-Green 배포 (Blue-Green Deployment)

Blue-Green 배포는 두 개의 독립적인 환경(블루와 그린)을 사용하여 배포하는 방법으로, 하나는 현재 운영 중인 버전(블루)이며, 다른 하나는 새로운 버전(그린)이다.

작동 방식

처음에는 그린 환경에서 새로운 버전을 배포하고 충분한 테스트를 마친 후, 트래픽을 블루 환경에서 그린 환경으로 전환한다. 전환 이후 블루 환경은 대기 상태로 남아 있어, 문제가 발생할 경우 즉시 롤백할 수 있다.

장점

신속하고 안전한 배포가 가능하며, 문제가 발생했을 경우 기존 버전으로 즉각적으로 복원할 수 있는 장점을 가진다.

예시

블루 환경에서의 안전한 테스트를 거친 후, 그린 환경으로 서비스를 전환하고, 이후 검증이 완료되면 그린 환경이 새로운 블루 환경으로 승격되는 방식이다.

SaaS 기반의 프로젝트 관리 툴

블루 환경(현재 운영 중인 시스템)은 Ver 2.0이고, 그린 환경에서는 Ver 2.1이 개발 완료되어 테스트를 진행하고 있습니다.
그린 환경에서 모든 테스트를 마친 후, 사용자를 블루에서 그린으로 전환합니다.
이때 트래픽을 전환하는 것은 네트워크 설정을 변경하는 것만으로 간단히 할 수 있습니다.
사용자는 전환 순간까지는 블루 환경에서 서비스를 이용하고 있었다가, 갑자기 그린 환경으로의 전환이 완료되면 Ver 2.1이 제공됩니다.
만약 그린 환경에서 문제가 발생하면, 즉시 블루 환경으로 트래픽을 돌려버리면 이전 버전인 Ver 2.0으로 사용자가 돌아가고, 서비스 중단 없이 문제를 해결할 수 있습니다.

3. Canary 배포 (Canary Deployment)

Canary 배포는 새로운 기능이나 버전을 소수의 사용자에게 먼저 배포하여 실험하는 방법이다.

작동 방식

전체 사용자 중 일부에게 새로운 버전을 제공하고, 그 반응과 성능을 모니터링한다. 문제가 없다면 점차 더 많은 사용자에게 배포를 확대한다.

장점

전체 사용자에게 미치는 영향이 적고, 새로운 기능을 안전하게 테스트 할 수 있어 문제가 발생했을 때 피해를 최소화할 수 있다.

예시

특정 사용자를 대상으로 새로운 기능을 시험적으로 배포하며, 피드백을 통해 버전의 안정성을 확인한 후 전체 사용자에게 확장 배포하는 방식이다.

SaaS 기반의 프로젝트 관리 툴

블루 환경(현재 운영 중인 시스템)은 Ver 2.0이고, 그린 환경에서는 Ver 2.1이 개발 완료되어 테스트를 진행하고 있습니다.
그린 환경에서 모든 테스트를 마친 후, 사용자를 블루에서 그린으로 전환합니다.
이때 트래픽을 전환하는 것은 네트워크 설정을 변경하는 것만으로 간단히 할 수 있습니다.
사용자는 전환 순간까지는 블루 환경에서 서비스를 이용하고 있었다가, 갑자기 그린 환경으로의 전환이 완료되면 Ver 2.1이 제공됩니다.
만약 그린 환경에서 문제가 발생하면, 즉시 블루 환경으로 트래픽을 돌려버리면 이전 버전인 Ver 2.0으로 사용자가 돌아가고, 서비스 중단 없이 문제를 해결할 수 있습니다.

profile
롱런하는 개발자!

0개의 댓글