본문 바로가기
WIKI 기술 지식 베이스

Traffic Split

원문 보기 위키 갱신

Traffic Split (카나리, 블루/그린 배포)

Linkerd의 트래픽 분할(TrafficSplit) 기능을 이용해 카나리와 블루/그린 같은 롤아웃 전략을 구현하는 방법을 소개하는 문서예요.

출처: Linkerd Traffic Split (canaries, blue/green deploys)

본문

Warning

TrafficSplit 기능과 linkerd-smi 확장은 deprecated되었으며 향후 릴리스에서 제거될 예정입니다. 현재 이 기능을 사용 중이라면, SMI 확장이 필요 없는 동적 요청 라우팅으로 마이그레이션할 것을 권장합니다.

Linkerd의 트래픽 분할 기능을 사용하면 Kubernetes 서비스를 목적지로 하는 트래픽의 임의 비율을 다른 목적지 서비스로 동적으로 옮길 수 있어요. 이 기능을 사용하면 카나리 배포와 블루/그린 배포 같은 정교한 롤아웃 전략을 구현할 수 있습니다. 예를 들어 서비스의 이전 버전에서 새 버전으로 트래픽을 천천히 옮기는 방식으로요.

Note

TrafficSplit은 headless 서비스와 함께 사용할 수 없어요. Linkerd는 대상 IP 주소를 기준으로 서비스 디스커버리 정보를 읽는데, 그것이 파드 IP 주소라면 그 파드가 어떤 서비스에 속하는지 알 수 없습니다.

Linkerd는 이 기능을 Service Mesh Interface (SMI) TrafficSplit API를 통해 제공합니다. 이 기능을 사용하려면 TrafficSplit 스펙에 설명된 대로 Kubernetes 리소스를 만들면 되고, 나머지는 Linkerd가 처리해요. 단계별 문서는 Getting started with Linkerd SMI extension 페이지에서 확인할 수 있습니다.

트래픽 분할을 Linkerd의 메트릭과 결합하면, 이전·새 버전의 성공률과 지연 시간을 자동으로 고려하는 훨씬 더 강력한 배포 기법을 달성할 수 있어요. 이에 대한 한 예로 Flagger 프로젝트를 참고하세요.

트래픽 분할로 무엇을 할 수 있는지 예시를 확인해 보세요:

  • Canary Releases (카나리 릴리스)
  • Fault Injection (장애 주입)

더 알아보기 (Learn more)

  • Linkerd SMI 확장 시작하기
  • 동적 요청 라우팅 소개(deprecated된 TrafficSplit의 대안)