토폴로지 인지 라우팅
토폴로지 인지 라우팅 (Topology Aware Routing)
Kubernetes 클러스터는 점점 더 멀티 존(multi-zone) 환경에 배포되고 있으며, 네트워크 트래픽은 종종 특정 서비스에 대한 불명확한 엔드포인트 매칭과 라우팅에 의존해요. Linkerd의 Kubernetes Topology Aware Routing 구현은 여러 존에 걸쳐 있는 클러스터 내에서 엔드포인트 선택과 라우팅을 더 잘 제어할 수 있는 메커니즘을 사용자에게 제공해요. 이제 사용자는 라우팅 제약을 구현하고 특정 존의 엔드포인트를 선호해서, 교차 존 네트워킹 비용을 줄이거나 교차 존 지연 시간과 대역폭 제약을 낮춰 성능을 개선할 수 있어요.
토폴로지 인지 라우팅의 목표는 노드의 topology.kubernetes.io/zone 레이블만 기준으로 결정을 내려서 사용자가 더 간단하게 엔드포인트를 선호하도록 하는 것이에요. 클라이언트가 zone-a에 있다면, zone-a의 클라이언트가 사용하도록 표시된 엔드포인트를 선호해야 해요. 이 기능이 활성화되고 레이블이 설정되면, Linkerd의 destination 컨트롤러는 hints.forZones 필드가 클라이언트의 존과 일치하는 엔드포인트를 찾으려고 해요.
참고
안정적인 배포판(stable distribution)의 Linkerd를 사용한다면, 토폴로지 인지 라우팅과 관련된 추가 기능이 있을 수 있어요 (예: Buoyant Enterprise for Linkerd와 그 HAZL 기능). 다양한 종류의 Linkerd 릴리스에 대한 자세한 내용은 Releases and Versions 페이지에서 확인할 수 있어요.
토폴로지 인지 라우팅을 시작하려면 enabling topology aware routing 태스크 문서를 확인하세요.
본문
토폴로지 인지 라우팅(Topology Aware Routing)은 Kubernetes 클러스터가 여러 존에 걸쳐 배포되는 환경에서, 엔드포인트 선택과 라우팅을 더 세밀하게 제어할 수 있게 해주는 Linkerd 기능이에요. 사용자는 노드의 topology.kubernetes.io/zone 레이블을 기준으로 특정 존의 엔드포인트를 선호하도록 라우팅 제약을 걸 수 있어요. 이렇게 하면 교차 존 네트워킹 비용을 줄이고, 교차 존 지연 시간과 대역폭 제약을 낮춰 성능을 개선할 수 있어요.
기능이 활성화되고 레이블이 설정되면, Linkerd의 destination 컨트롤러는 hints.forZones 필드가 클라이언트의 존과 일치하는 엔드포인트를 찾으려고 해요. 즉 클라이언트가 zone-a에 있다면 zone-a의 클라이언트가 사용하도록 표시된 엔드포인트를 선호해요.
안정적인 배포판을 쓴다면 Buoyant Enterprise for Linkerd의 HAZL 기능처럼 토폴로지 인지 라우팅 관련 추가 기능이 있을 수 있어요. 시작하려면 enabling topology aware routing 태스크 문서를 참고하세요.