Для управления балансировкой запросов между эндпоинтами сервиса можно использовать модуль istio.
Перед настройкой балансировки убедитесь, что модуль включен в кластере.
Основной ресурс для управления балансировкой запросов — DestinationRule от istio.io. Этот ресурс предоставляет возможности настройки следующих параметров:
- лимиты и таймауты для TCP;
- алгоритмы балансировки между эндпоинтами;
- правила определения проблем на стороне эндпоинта для выведения его из балансировки;
- нюансы шифрования.
Все настраиваемые лимиты работают для каждого пода клиента по отдельности. Например, если настроить для сервиса ограничение на одно TCP-соединение, а клиентских подов — три, то сервис получит три входящих соединения.
Ресурс DestinationRule
Подробнее ознакомиться с DestinationRule можно в документации istio. Используйте этот ресурс, чтобы:
- Определить стратегию балансировки трафика между эндпоинтами сервиса:
- алгоритм балансировки (
LEAST_CONN,ROUND_ROBIN, и т. д.); - определение и исключение неработающих эндпоинтов;
- лимиты TCP-соединений и запросов для эндпоинтов;
- поддержка Sticky Sessions;
- настройка Circuit Breaker.
- алгоритм балансировки (
- Задать альтернативные группы эндпоинтов для обработки трафика (применимо для Canary Deployments). Каждая группа может иметь свои стратегии балансировки.
- Настроить TLS для исходящих запросов.