Для управления балансировкой запросов между эндпоинтами сервиса можно использовать модуль istio. Перед настройкой балансировки убедитесь, что модуль включен в кластере.

Основной ресурс для управления балансировкой запросов — DestinationRule от istio.io. Этот ресурс предоставляет возможности настройки следующих параметров:

  • лимиты и таймауты для TCP;
  • алгоритмы балансировки между эндпоинтами;
  • правила определения проблем на стороне эндпоинта для выведения его из балансировки;
  • нюансы шифрования.

Все настраиваемые лимиты работают для каждого пода клиента по отдельности. Например, если настроить для сервиса ограничение на одно TCP-соединение, а клиентских подов — три, то сервис получит три входящих соединения.

Ресурс DestinationRule

Подробнее ознакомиться с DestinationRule можно в документации istio. Используйте этот ресурс, чтобы:

  • Определить стратегию балансировки трафика между эндпоинтами сервиса:
    • алгоритм балансировки (LEAST_CONN, ROUND_ROBIN, и т. д.);
    • определение и исключение неработающих эндпоинтов;
    • лимиты TCP-соединений и запросов для эндпоинтов;
    • поддержка Sticky Sessions;
    • настройка Circuit Breaker.
  • Задать альтернативные группы эндпоинтов для обработки трафика (применимо для Canary Deployments). Каждая группа может иметь свои стратегии балансировки.
  • Настроить TLS для исходящих запросов.