Целевые группы сетевых балансировщиков
Режим управления целевыми группами настраивается в сервисе Kubernetes — ресурсе Service типа LoadBalancer. По настройкам сервиса контроллер Managed Service for Kubernetes автоматически создает сетевой балансировщик нагрузки Network Load Balancer, который направляет трафик на узлы кластера.
По умолчанию балансировщики нагрузки используют общую целевую группу, включающую все узлы кластера. Балансировщик проверяет доступность всех узлов кластера, даже если поды приложения, к которому он направляет трафик, размещены только на нескольких из них.
Чтобы сократить число проверяемых узлов, для сервиса с политикой externalTrafficPolicy: Local можно настроить режим управления целевыми группами v2. Контроллер создаст для сетевого балансировщика отдельную целевую группу с узлами, на которых размещены поды приложения, и будет обновлять ее. Вы можете задать режим при создании сервиса или настроить в уже существующем.
Важно
Режим v2 доступен в релизном канале RAPID и требует предварительного подключения на стороне Yandex Cloud. Для подключения обратитесь в техническую поддержку — укажите идентификатор облака и идентификатор кластера.
После подключения настройте режим v2 по инструкции.
Чтобы включить режим v2 для нового или существующего сетевого балансировщика, выполните действия из раздела Настройка режима управления целевыми группами для сетевых балансировщиков.
Комбинации режимов управления и политик
От сочетания режима управления и политики зависит состав целевой группы.
|
Режим управления |
Политика трафика |
Состав целевой группы |
|
|
|
Общая группа со всеми узлами кластера |
|
|
|
Отдельная группа с узлами, на которых размещены поды нужного приложения |
|
|
|
Общая группа со всеми узлами кластера |
Учитывайте следующие особенности:
- Возможность уменьшать целевую группу появляется только при включении политики
Local. - Если поды сервиса размещены на всех узлах, группа может не уменьшиться и при включении политики
Local. - Для каждого сервиса с
Localсоздается отдельная группа. Проверьте квоты и лимиты Network Load Balancer на группы и цели. - Режим
v2не увеличивает квоты Managed Service for Kubernetes, адресное пространство или ресурсы мастера. - При отсутствии аннотации или неизвестном значении используется режим
legacy.
Обновление целевой группы
В режиме v2 с политикой Local контроллер использует объекты EndpointSlice, чтобы определить узлы с подами приложения. Если под нужного приложения появляется на новом узле, контроллер добавляет узел в группу. Если на узле больше нет подов, контроллер исключает его из группы.
Network Load Balancer выполняет проверки доступности узлов в группе. Наличие узла в группе не означает, что он успешно проходит проверку. Контроллер определяет состав группы, а проверки определяют доступность определенного узла.
Изменение EndpointSlice, обновление облачных ресурсов и проверки доступности выполняются асинхронно. Состав группы может не сразу отразить новое размещение подов.
Не изменяйте вручную состав групп, которыми управляет контроллер. Для изменения режима используйте аннотацию объекта Service.
Примеры использования
В кластере со ста узлами у приложения три пода на трех узлах. В режиме legacy целевая группа балансировщика включает все сто узлов, но проверки успешно проходят только на трех узлах с подами приложения. В режиме v2 группа балансировщика содержит три узла.
Режим полезен, когда в большом кластере работает много приложений, каждое из которых занимает небольшую часть узлов. Добавление узлов для других приложений не расширяет целевую группу такого сервиса, пока на новых узлах не появятся его поды.