트래픽 분할
목차
트래픽 분할 개요
기본 구조
Canary 배포
Argo Rollouts + Istio 아키텍처
Canary 배포 흐름
1단계: Argo Rollouts 설치
2단계: Rollout 리소스 정의
3단계: Service 생성
4단계: VirtualService 정의
5단계: DestinationRule 정의
6단계: AnalysisTemplate 정의
성공률 분석
지연시간 분석
배포 실행 및 모니터링
새 버전 배포
수동 승인/거부
배포 진행 상황 모니터링
고급 설정: 메트릭 기반 자동 진행
주요 주의사항
1. VirtualService와 DestinationRule 미리 생성 필수
2. Rollout이 관리하는 레이블
3. HTTP Route Name 필수
4. Istio Injection 활성화
VirtualService Match와 함께 사용하기
예제 1: 헤더 기반 Canary (내부 테스터용)
예제 2: 지역 기반 단계적 배포
예제 3: 사용자 등급별 배포
예제 4: 모바일 앱 버전별 배포
완전한 배포 예제
Match와 함께 사용 시 주의사항
1. Route 순서가 중요
2. Rollout은 지정된 Route만 관리
3. 여러 Route를 동시에 관리
문제 해결
Rollout이 Progressing 상태에서 멈춤
트래픽이 Canary로 가지 않음
Rollout 롤백
Blue/Green 배포와 Argo Rollouts
Blue/Green 배포
Argo Rollouts Blue/Green 아키텍처
Blue/Green 배포 흐름
1단계: Service 정의
2단계: Istio Gateway 및 VirtualService
3단계: Rollout 리소스 정의
4단계: AnalysisTemplate 정의
사전 테스트 (Smoke Tests)
사후 검증 테스트
배포 실행 및 관리
새 버전 배포
수동 승인 (Promotion)
상태 확인
롤백
A/B 테스트
Cookie 기반 A/B 테스트
Header 기반 A/B 테스트
지역 기반 A/B 테스트
점진적 롤아웃
수동 점진적 롤아웃
트래픽 미러링과 함께 사용
실전 예제
예제 1: 사용자 세그먼트별 배포
예제 2: 시간대별 배포
예제 3: 마이크로서비스 연쇄 Canary
모니터링 및 롤백
Prometheus 쿼리
자동 롤백 스크립트
문제 해결
트래픽 분할이 작동하지 않음
Weight가 예상과 다르게 동작
모범 사례
1. 단계적 롤아웃
2. 롤백 계획 준비
3. 모니터링 필수
4. 테스트 자동화
5. 문서화
참고 자료
Istio 관련
Argo Rollouts 관련
Progressive Delivery
마지막 업데이트