Настройка балансировщика нагрузки
Балансировщик нагрузки — это сервис, распределяющий трафик по экземплярам контейнеров. За счет использования функции балансировки нагрузки он автоматически распределяет входящий трафик к вычислительным компонентам и перенаправляет его к экземплярам контейнеров этих компонентов. Балансировка нагрузки позволяет повысить отказоустойчивость вычислительных компонентов, масштабировать их внешние сервисные возможности и улучшить доступность приложений.
Администраторы платформы могут создавать балансировщики нагрузки с одной точкой отказа или с высокой доступностью для любого кластера на платформе, а также централизованно управлять и распределять ресурсы балансировщика нагрузки. Например, балансировку нагрузки можно назначать проектам, гарантируя, что использовать ее смогут только пользователи с соответствующими правами проекта.
Ниже приведена таблица с пояснениями к связанным понятиям в этом разделе.
Содержание
Предварительные условияПример пользовательского ресурса ALB2 (CR)Создание балансировщика нагрузки через веб-консольСоздание балансировщика нагрузки через CLIОбновление балансировщика нагрузки через веб-консольУдаление балансировщика нагрузки через веб-консольУдаление балансировщика нагрузки через CLIНастройка портов прослушивателя (Frontend)Предварительные условияПример пользовательского ресурса Frontend (CR)Создание портов прослушивателя (Frontend) через веб-консольСоздание портов прослушивателя (Frontend) через CLIПоследующие действияСвязанные операцииНастройка правилПример пользовательского ресурса Rule (CR)dslxСоздание Rule через веб-консольСоздание Rule через CLIЖурналы и мониторингПросмотр журналовМетрики мониторингаДополнительные ресурсыПредварительные условия
Для высокой доступности балансировщика нагрузки требуется VIP. См. Configure VIP.
Пример пользовательского ресурса ALB2 (CR)
- При значении
enableLbSvcравном true будет создан внутренний service типа LoadBalancer для адреса доступа балансировщика нагрузки.lbSvcAnnotations— справочник по аннотациям service типа LoadBalancer. - См. приведенную ниже конфигурацию режима сети.
- См. приведенный ниже способ распределения ресурсов.
- См. приведенный ниже назначенный проект.
- См. приведенную ниже спецификацию.
Создание балансировщика нагрузки через веб-консоль
-
Перейдите в Управление платформой.
-
В левой боковой панели нажмите Управление сетью > Балансировщик нагрузки.
-
Нажмите Создать балансировщик нагрузки.
-
Следуйте приведенным ниже инструкциям, чтобы завершить настройку сети.
-
Следуйте приведенным ниже инструкциям, чтобы завершить настройку ресурсов.
-
Нажмите Создать. Процесс создания займет некоторое время; пожалуйста, подождите.
Создание балансировщика нагрузки через CLI
Обновление балансировщика нагрузки через веб-консоль
Обновление балансировщика нагрузки приведет к прерыванию обслуживания на 3–5 минут. Выберите подходящее время для этой операции!
-
Перейдите в Управление платформой.
-
В левой панели навигации нажмите Управление сетью > Балансировщик нагрузки.
-
Нажмите ⋮ > Обновить.
-
При необходимости обновите настройки сети и ресурсов.
-
Устанавливайте спецификацию разумно, исходя из бизнес-потребностей. Для справки также можно обратиться к соответствующему материалу Как правильно распределять ресурсы CPU и памяти.
-
Внутренняя маршрутизация поддерживает только обновление состояния с Отключено на Включено.
-
-
Нажмите Обновить.
Удаление балансировщика нагрузки через веб-консоль
После удаления балансировщика нагрузки связанные порты и правила также будут удалены и не могут быть восстановлены.
-
Перейдите в Управление платформой.
-
В левой панели навигации нажмите Управление сетью > Балансировщик нагрузки.
-
Нажмите ⋮ > Удалить и подтвердите действие.
Удаление балансировщика нагрузки через CLI
Настройка портов прослушивателя (Frontend)
Балансировщик нагрузки поддерживает прием запросов клиентов через порты прослушивания и соответствующие протоколы, включая HTTPS, HTTP, gRPC, TCP и UDP.
Предварительные условия
Если вам нужно добавить порт прослушивания HTTPS, следует также обратиться к администратору, чтобы он назначил текущему проекту TLS-сертификат для шифрования.
Пример пользовательского ресурса Frontend (CR)
- Обязательно: указывает ALB, к которому принадлежит этот
Frontend. - Формат:
$alb_name-$port. - Формат:
$secret_ns/$secret_name. - Протокол самого этого
Frontend.http|https|grpc|grpcsдля l7 proxy.tcp|udpдля l4 proxy.
- Для l4 proxy
serviceGroupобязателен. Для l7 proxyserviceGroupнеобязателен. При поступлении запроса ALB сначала попытается сопоставить его с правилами, связанными с этимFrontend. Только если запрос не совпадет ни с одним правилом, ALB перенаправит его вserviceGroupпо умолчанию, указанную в конфигурацииFrontend. - Конфигурация
weightприменяется к алгоритмам планирования Round Robin и Weighted Round Robin.
ALB прослушивает ingress и автоматически создает Frontend или Rule. Поле source определено следующим образом:
spec.source.typeв настоящее время поддерживает толькоingress.spec.source.name— это имя ingress.spec.source.namespace— это пространство имен ingress.
Создание портов прослушивателя (Frontend) через веб-консоль
-
Перейдите в Платформа контейнеров.
-
В левой панели навигации нажмите Сеть > Балансировка нагрузки.
-
Нажмите имя балансировщика нагрузки, чтобы перейти на страницу сведений.
-
Нажмите Добавить порт прослушивания.
-
Для настройки соответствующих параметров воспользуйтесь приведенными ниже инструкциями.
-
Нажмите ОК.
Создание портов прослушивателя (Frontend) через CLI
Последующие действия
Для трафика с портов HTTP, gRPC и HTTPS, помимо группы внутренней маршрутизации по умолчанию, можно задать более разнообразные правила сопоставления backend-сервисов. Балансировщик нагрузки сначала сопоставит соответствующий backend-сервис согласно заданным правилам; если сопоставление по правилу не удастся, он сопоставит backend-сервисы, соответствующие указанной выше группе внутренней маршрутизации.
Связанные операции
Вы можете нажать значок ⋮ справа на странице списка или нажать Действия в правом верхнем углу страницы сведений, чтобы при необходимости обновить маршрут по умолчанию или удалить порт прослушивания.
Если метод распределения ресурсов балансировщика нагрузки — Порт, удалять связанные порты прослушивания в представлении Управление платформой могут только администраторы.
Настройка правил
Добавьте правила перенаправления для портов прослушивания протоколов HTTPS, HTTP и gRPC. Балансировщик нагрузки будет сопоставлять backend-сервисы на основе этих правил.
Для протоколов TCP и UDP правила перенаправления добавить нельзя.
Пример пользовательского ресурса Rule (CR)
- Обязательно: указывает
Frontend, к которому принадлежит это правило. - Обязательно: указывает ALB, к которому принадлежит это правило.
- Как и у
Frontend. - Как и у
Frontend. - Чем меньше число, тем выше приоритет.
- Как и у
Frontend.
dslx
dslx — это предметно-ориентированный язык, используемый для описания критериев сопоставления.
Например, приведенное ниже правило сопоставляет запрос, который удовлетворяет всем следующим критериям:
- url начинается с /app-a или /app-b
- method — post
- параметр url group равен vip
- host — *.app.com
- значение header location — east-1 или east-2
- cookie имеет имя uid
- исходные IP-адреса находятся в диапазоне 1.1.1.1–1.1.1.100
Создание Rule через веб-консоль
-
Перейдите в Платформа контейнеров.
-
В левой панели навигации нажмите Сеть > Балансировка нагрузки.
-
Нажмите имя балансировщика нагрузки.
-
Нажмите имя порта прослушивания.
-
Нажмите Добавить правило.
-
Для настройки соответствующих параметров воспользуйтесь приведенными ниже описаниями.
-
Нажмите Добавить.
Создание Rule через CLI
Журналы и мониторинг
Сочетание визуализированных журналов и данных мониторинга позволяет быстро выявлять и устранять неполадки или сбои балансировщика нагрузки.
Просмотр журналов
-
Перейдите в Управление платформой.
-
В левой панели навигации нажмите Управление сетью > Балансировщик нагрузки.
-
Нажмите Имя балансировщика нагрузки.
-
На вкладке Журналы просмотрите журналы времени выполнения балансировщика нагрузки с точки зрения контейнера.
Метрики мониторинга
Кластер, в котором расположен балансировщик нагрузки, должен иметь развернутые службы мониторинга.
-
Перейдите в Управление платформой.
-
В левой панели навигации нажмите Управление сетью > Балансировщик нагрузки.
-
Нажмите Имя балансировщика нагрузки.
-
На вкладке Мониторинг просмотрите информацию о тенденции метрик балансировщика нагрузки с точки зрения узла.
-
Коэффициент использования: фактическое использование CPU и памяти балансировщиком нагрузки на текущем узле.
-
Пропускная способность: общий входящий и исходящий трафик экземпляра балансировщика нагрузки.
-