DestinationRule

지원 버전: Istio 1.28+ API 버전: networking.istio.io/v1 마지막 업데이트: 2026년 2월 23일

DestinationRule은 VirtualService가 트래픽을 라우팅한 후, 해당 트래픽을 어떻게 처리할지 정의하는 Istio의 핵심 리소스입니다.

목차

DestinationRule이란?

DestinationRule은 라우팅 이후의 트래픽 정책을 정의합니다. VirtualService가 "어디로" 보낼지 결정한다면, DestinationRule은 "어떻게" 처리할지 결정합니다.

spinner

DestinationRule의 주요 역할

역할
설명
예시

Subset 정의

서비스 버전 그룹화

v1, v2, canary, stable

Load Balancing

부하 분산 알고리즘

ROUND_ROBIN, LEAST_REQUEST

Connection Pool

연결 풀 설정

최대 연결 수, Timeout

Circuit Breaker

장애 격리

Outlier Detection

TLS 설정

암호화 정책

mTLS, SIMPLE TLS

VirtualService vs DestinationRule

두 리소스는 함께 사용되어 완전한 트래픽 관리를 제공합니다.

역할 비교

spinner

책임 분리

VirtualService (어디로?):

DestinationRule (어떻게?):

Subset 개념

Subset은 서비스의 논리적 그룹을 정의합니다. 주로 버전, 배포 단계, 지역 등으로 구분합니다.

Subset의 본질

spinner

Subset 사용 시나리오

1. 버전 기반 라우팅

2. 배포 단계별 구분

3. 지역별 구분

4. 환경별 구분

기본 구조

필수 필드

Host 지정 방법

1. 서비스 이름 (같은 네임스페이스)

2. FQDN (다른 네임스페이스)

3. 와일드카드

4. 외부 서비스 (ServiceEntry와 함께)

Subset 정의하기

단순 Subset

Subset별 개별 정책

복잡한 레이블 매칭

Traffic Policy 개요

DestinationRule의 trafficPolicy는 다양한 트래픽 제어 기능을 제공합니다.

Traffic Policy 계층 구조

spinner

Traffic Policy 구성 요소

1. Load Balancer

자세한 내용은 로드 밸런싱 참조

2. Connection Pool

자세한 내용은 Circuit Breaker 참조

3. Outlier Detection

자세한 내용은 Circuit Breaker 참조

4. TLS 설정

자세한 내용은 보안 참조

5. Port Level Settings

VirtualService와 함께 사용

VirtualService와 DestinationRule은 함께 사용되어 완전한 트래픽 제어를 제공합니다.

기본 패턴: Canary 배포

URI 기반 라우팅 + Subset별 정책

실전 예제

예제 1: 마이크로서비스 버전 관리

사용 시나리오:

  • v1: 안정 버전 (대부분의 트래픽)

  • v2: Canary 버전 (10% 트래픽)

  • v3: 테스트 버전 (개발자만)

예제 2: Multi-Region 배포

예제 3: 배포 단계별 정책

예제 4: 외부 서비스 통합

예제 5: 데이터베이스 연결 풀

모범 사례

1. Subset 명명 규칙

2. 기본 정책 + 오버라이드 패턴

3. Circuit Breaker는 필수

4. Connection Pool 설정

5. 점진적 롤아웃

6. 문서화

문제 해결

Subset이 작동하지 않음

증상:

원인 및 해결:

Traffic Policy가 적용되지 않음

Subset 충돌

문제:

해결:

istioctl 분석

다음 단계

DestinationRule을 이해했다면 다음 주제로 넘어가세요:

  1. 트래픽 분할arrow-up-right: Canary, Blue/Green 배포

  2. 로드 밸런싱: 다양한 알고리즘과 정책

  3. Circuit Breaker: 장애 격리 및 복원력

  4. Retry 및 Timeoutarrow-up-right: 재시도 및 타임아웃 설정

참고 자료

마지막 업데이트