목록 보기
카나리 테스트와 함께하는 안전한 서버 배포
데브옵스

카나리 테스트와 함께하는 안전한 서버 배포

타다
타다
2021년 4월 5일

두줄요약

Kubernetes 환경에서 Helm, NGINX Ingress, Istio로 카나리 배포를 구성했습니다. 프로세스 유형별 트래픽 제어와 모니터링·롤백 절차를 정리했습니다.

문제 상황

  • Spring Boot 메이저 버전과 의존 라이브러리 동시 변경에 따른 프로덕션 전체 배포 위험
  • 미검증 기능·성능 문제를 줄이기 위한 일부 트래픽 대상 사전 검증 필요

구조와 흐름

  • 프로덕션 브랜치를 추종하는 카나리 브랜치와 canary 태그 Docker 이미지 관리
  • Helm 차트의 별도 릴리스 설치와 릴리스명 기반 리소스·레이블 셀렉터 분리
  • 외부 API, gRPC 내부 서비스, 큐 워커, 싱글턴 배치별 상이한 트래픽 제어

해결 방법

  • NGINX Ingress의 canary 어노테이션과 weight로 외부 요청 비율 점진 조정
  • Istio VirtualService로 Kubernetes Service와 카나리 Service 간 gRPC 요청 가중치 라우팅
  • 워커는 replicas 수로 처리 비중 조절, 싱글턴은 기존·카나리 중 하나만 실행

성능/운영 포인트

  • 배포 도구로 Helm 설치와 프로세스 유형별 카나리 비율 설정 일괄 적용
  • 체크리스트 기반 비율 증가와 Sentry·Grafana 모니터링, 이상 시 weight 0 롤백
  • 향후 대조군 메트릭 비교·자동 롤백 및 사용자 그룹 기반 카나리 적용 검토

다음 읽기

#Kubernetes 주제를 다룬 다른 회사 글

배포를 안전하게 - 카나리 배포, 롤백

GitHub·Spinnaker·Helm 기반 Kubernetes 배포 흐름과 카나리 배포 구현을 소개했습니다. Istio 트래픽 분산과 커밋 SHA 기반 원클릭 롤백으로 배포 안전성을 높였습니다.

버즈빌
버즈빌
데브옵스
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...