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

로드 밸런싱

원문 보기 위키 갱신

로드 밸런싱 (Load Balancing)

Linkerd가 사용하는 고급 로드 밸런싱 알고리즘과, 비율 제한(rate limiting)을 지원하는 백엔드를 위한 특별 처리 방법을 알아봐요.

출처: Linkerd Load Balancing

본문

Linkerd는 정교한 EWMA 로드 밸런싱 알고리즘을 사용하는데, 보통 별도의 설정이나 튜닝이 필요 없어요. 다만 비율 제한을 지원하는 백엔드를 위한 특별 처리를 제공하며, 이 기능은 Service 어노테이션으로 활성화할 수 있어요.

로드 바이어서 (Load Biaser)

백엔드가 비율 제한을 구현하고 기본적으로 HTTP 429 또는 gRPC RESOURCE_EXHAUSTED를 반환하는 경우, 프록시는 로드 밸런싱 관점에서 이 응답들을 성공으로 간주해요. 이런 유형의 응답은 보통 아주 빠르기 때문에 Linkerd의 EWMA 로드 밸런싱이 오히려 이런 비율 제한 엔드포인트에 더 많은 트래픽을 보낼 수 있어요. 그 결과 클라이언트가 높은 429 또는 RESOURCE_EXHAUSTED 비율을 경험하는 피드백 루프가 생길 수 있어요.

Linkerd는 비율 제한 응답(HTTP 429 또는 gRPC RESOURCE_EXHAUSTED)을 고려하는 더 정교한 버전의 EWMA 로드 밸런싱 알고리즘을 사용하도록 구성할 수 있어요.

Service에 대해 Linkerd가 로드 바이어서를 사용하도록 하려면 Service 리소스에 다음 어노테이션을 설정하세요.

어노테이션 값
balancer.alpha.linkerd.io/penalize-failures 이 Service에 로드 바이어서를 활성화. 기본값: false
balancer.alpha.linkerd.io/load-biaser-penalty 비율 제한 응답 및 실패에 주입할 지연 시간 값. 기본값: 5s
balancer.alpha.linkerd.io/load-biaser-max-retry-after Retry-After 헤더에 허용되는 최대 값. 기본값: 300s

더 알아보기 (Learn more)