
배포를 안전하게 - 카나리 배포, 롤백
두줄요약
GitHub·Spinnaker·Helm 기반 Kubernetes 배포 흐름과 카나리 배포 구현을 소개했습니다.\nIstio 트래픽 분산과 커밋 SHA 기반 원클릭 롤백으로 배포 안전성을 높였습니다.
구조와 흐름
- GitHub 푸시 이벤트 기반 커밋 SHA 태그의 Docker 이미지 빌드·저장
- GitHub 배포 이벤트를 웹훅으로 수신한 Spinnaker 파이프라인의 Helm 배포
- 공통 Helm 차트와 서비스별 values.yaml,
--set오버라이드 기반 매니페스트 생성
선택 이유
- 커밋 SHA 기반 이미지 태그로 커밋별 이미지 식별과 배포 대상 확인
- Istio VirtualService의 가중치 기반 메인·카나리 릴리즈 트래픽 분산
- 버전별 Datadog 메트릭 비교를 통한 신규 버전 검증과 피해 반경 축소
성능/운영 포인트
- 배포 시점 dynamic payload로 카나리 레플리카 수와 트래픽 비중 선택
- 검증 후 전체 배포 또는 취소 결정, 카나리 트래픽 제거와 릴리즈 정리
- 배포 히스토리의 커밋 SHA 재배포와 배포 Lock 기반 원클릭 롤백
주의할 점
- 카나리 배포 미지원 Kubernetes 환경에서 Helm 차트와 Istio 설정의 별도 구현 필요
- 이전 values.yaml까지 동일 커밋으로 지정해야 이전 매니페스트 재현 가능

