Link Search Menu Expand Document

고급 배포 전략 - 블루그린

Table of contents

  1. 최초 리소스 1회 배포
  2. Blue/Green 설정
  3. 배포 확인
    1. Pod 배포 리소스 확인
    2. Service 리소스 확인
    3. 테스트 및 승인
    4. 배포 확인 및 복원

최초 리소스 1회 배포

네임스페이스 선택 ➡ 애플리케이션 ➡ 카탈로그 ➡ 대상 카탈로그 선택 ➡ 최초 1회 배포
고급 전략 배포를 통한 배포 방식은 카탈로그를 통해 애플리케이션 배포 후 해당 원본 리소스를 복사합니다.
배포자 혹은 승인자가 승인을 할 경우 복사한 정보를 가지고 애플리케이션을 배포합니다.
즉 고급 배포 전력을 생성하기 위해서는 최초 1회 원본 리소스 배포가 필요합니다.
이미 배포 이력이 있다면, 생략하고 아래 단계로 넘어가시면 됩니다.

catalog_deploy.png


Blue/Green 설정

네임스페이스 선택 ➡ 애플리케이션 ➡ 카탈로그 ➡ 대상 카탈로그 선택 ➡ 고급 배포 전략 ➡ 생성하기
무중단 배포를 적용할 대상 카탈로그를 선택한 후 상단의 탭에서 고급 배포 전략 탭을 클릭합니다.
화면 중앙 하단에 있는 생성하기 버튼을 클릭합니다.

pd_main.png

배포 방식 ➡ Blue/Green 배포 ➡ 다음: 리소스 선택
배포 방식에서 Blue/Green 배포를 선택하고 다음 리소스 선택 버튼을 클릭합니다.

pd_create_blue_green.png

배포 리소스 그룹 resource 체크 ➡ 워크로드 선택 ➡ 서비스 선택 ➡ HPA(선택) 가 있을 경우 선택 ➡ 다음: 배포 설정
배포 resource를 체크 후 애플리케이션을 배포하는 리소스(ex. deployment, statefulset 등) 선택
해당 애플리케이션이 사용하는 서비스 선택, HPA를 사용중일 경우 선택한 뒤 다음으로 넘어갑니다.

pd_select_resource.png

배포 설정
아래의 내용을 참고하여 작성합니다.

pd_settings.png

항목설정 값
운영 인그레스 설정현재 애플리케이션 접속을 위해 사용중인 Ingress를 선택합니다.
Blue/Green 인그레스 리소스애플리케이션 배포시 승격 전 정상 접속 유무를 확인하기 위한 생성하는 임시 Ingress의 정보
라벨임시 생성되는 Ingress에 라벨을 추가하고자 하는 경우 “추가” ➡ 내용 작성
어노테이션임시 생성되는 Ingress에 어노테이션을 추가하고자 하는 경우 “추가” ➡ 내용 작성
인그레스 클래스임시 생성되는 Ingress는 아코디언 내장 Ingress인 haproxy 만 지원
라우트 규칙라우트 규칙을 작성
도메인 이름테스트에 사용할 임시 도메인을 입력, 운영 인그레스와 겹치지 않게 작성
경로해당 Ingress를 통해 접속할 경로 및 서비스와 포트 설정
고급 설정고급 옵션을 설정합니다.
유지 개수새로운 배포를 할 경우 유지될 버전의 개수를 설정합니다. ex) 2개 설정시 과거 버전 1개, 현재 버전 1개 총 2개 유지
승인자 목록승격에 대한 승인을 할 수 있는 사용자 선택, 기본적으로 배포자는 자동으로 승인자 목록에 포함

배포 확인

배포를 할 경우 아래 이미지 처럼 Initializing 상태인 것을 확인 가능

pd_Initializing.png

잠시 기다리면 Releasing 상태가 되면서 배포가 완료된 것을 확인할 수 있음

pd_Releasing.png

고급 배포 전략의 상태 같은 경우 아래 표를 참고

상태설명
Initializing(초기화)처음 고급 배포 전략 생성 시에만 설정되는 상태
고급 배포 전략을 사용하기 위한 구성을 생성, 구성이 완료되면 인그레스 동작이 잠시 끊길 수 있음
Releasing(릴리즈)성공적으로 초기화되거나 승격된 상태
Updating(업데이트)새 버전을 감지하여 고급 배포 전략을 준비 중인 상태
Waiting(대기)고급 배포 전략이 성공적으로 구성된 상태로 승인자들이 모두 승인이 완료될 때까지 대기하는 상태
해당 상태에서 고급 배포 전략 테스트를 진행한다.
Promoting(승격)구성된 승인자들이 모두 승인된 경우, 최종 preview 버전으로 승격 중인 상태
Rollback(복원)이전 버전 리소스로 복원하여 해당 복원 버전으로 변경 중인 상태
Failed(실패)승격이 실패하여 현재 버전으로 되돌아가는 상태

Pod 배포 리소스 확인

정상적으로 고급 배포 전략이 완료 되었을 경우 아래의 이미지 처럼 총 두개의 배포 리소스를 확인할 수 있습니다.

pd_deploy.png

대상설명
test카탈로그를 통해서 배포된 원본 리소스
test-cdaf8be1원본 리소스를 복사하여 배포한 리소스, 실제 서비스를 제공하는 Pod

Service 리소스 확인

정상적으로 고급 배포 전략이 완료 되었을 경우 세개의 리소스가 존재하는 것을 확인할 수 있습니다.

pd_service.png

대상설명
test카탈로그를 통해서 배포된 원본 리소스
test-cdaf8be1원본 리소스를 복사하여 배포한 리소스, 해당 service를 통하여 stable service를 설정
test-cdaf8be1-stable원본 리소스를 복사하여 배포한 리소스, Ingress가 직접적으로 참조하는 Service

고급 배포 전략을 통하여 배포할 경우 카탈로그를 통해서 생성한 원본의 Service를 복사하여 새로운 Service를 생성
새롭게 생성한 서비스를 기반으로 -stable 서비스를 설정하게 되며, 서비스에 접속하기 위한 Ingress는 -stable 서비스를 참조합니다.
만약 새로운 버전을 배포하게 될 경우 배포된 원본을 복사하여 새로운 Service를 만들게 되고 이를 통해 동일하게 -stable 서비스를 설정합니다.
유지 개수에 설정한 수 만큼의 Pod 배포 리소스와 Service가 유지가 됩니다.
원복 혹은 업데이트를 할 경우 기존/신규 Service를 가지고 -stable Service만 재설정을 하기 때문에 무중단으로 원복과 업그레이드가 가능합니다.

테스트 및 승인

프리뷰(원본 리소스)를 기반으로 고급 배포 전략을 통하여 애플리케이션을 배포 후 소스 수정 또는 업데이트로 인해 새로운 배포를 진행할 경우
먼저 테스트를 진행 후 승인 절차를 통해 전환을 할 수 있습니다.

카탈로그 배포를 통해 신규 소스로 배포를 할 경우 아래의 이미지와 같은 상태를 확인할 수 있습니다.

고급 배포 전략을 통해 최초 배포된 리소스와 카탈로그를 통해 생성된 프리뷰 리소스가 있는 것을 확인할 수 있으며, 해당 단계에서
고급 배포 전략 생성시 설정한 Ingress를 통해 프리뷰 리소스에 접속이 가능합니다.
기능 테스트 후 문제가 없다면, 승인 버튼을 누를 경우 해당 리소스를 복사하여 동일하게 리소스를 배포합니다.

pd_waiting.png

배포 확인 및 복원

승인 후 승격 단계를 거친 다음 최종적으로 Releasing 상태가 된다면 업그레이드가 완료 되었습니다.
만약 최신 반영한 애플리케이션에 문제가 있을 경우 이전 배포 리소스의 복원 버튼을 클릭하여 중단 없이 이전 버전으로 전환이 가능합니다.

pd_Releasing.png