Настройка балансировщика нагрузки
Балансировщик нагрузки — это сервис, который распределяет трафик по контейнерным инстансам. Используя функциональность балансировки нагрузки, он автоматически распределяет входящий трафик для вычислительных компонентов и перенаправляет его на контейнерные инстансы этих компонентов. Балансировка нагрузки может повысить отказоустойчивость вычислительных компонентов, масштабировать внешнюю сервисную способность этих компонентов и улучшить доступность приложений.
Администраторы платформы могут создавать одноточечные или высокодоступные балансировщики нагрузки для любого кластера на платформе, а также централизованно управлять и распределять ресурсы балансировщиков нагрузки. Например, балансировка нагрузки может быть назначена проектам, обеспечивая использование балансировки только пользователями с соответствующими правами в проекте.
Пожалуйста, обратитесь к таблице ниже для объяснения связанных понятий в этом разделе.
Содержание
Предварительные требования
Высокая доступность Load Balancer требует наличия VIP. Пожалуйста, обратитесь к Настройка VIP.
Пример ресурса ALB2 (CR)
- При
enableLbSvcравном true будет создан внутренний сервис типа LoadBalancer для адреса доступа балансировщика нагрузки.lbSvcAnnotations— ссылка на конфигурацию аннотаций сервиса типа LoadBalancer. - Ознакомьтесь с конфигурацией Network Mode ниже.
- Ознакомьтесь с методом распределения ресурсов ниже.
- Ознакомьтесь с назначенным проектом ниже.
- Ознакомьтесь с техническими характеристиками ниже.
Создание балансировщика нагрузки через веб-консоль
-
Перейдите в Platform Management.
-
В левой боковой панели нажмите Network Management > Load Balancer.
-
Нажмите Create Load Balancer.
-
Следуйте инструкциям ниже для завершения настройки сети.
-
Следуйте инструкциям ниже для завершения настройки ресурсов.
-
Нажмите Create. Процесс создания займет некоторое время, пожалуйста, подождите.
Создание балансировщика нагрузки через CLI
Обновление балансировщика нагрузки через веб-консоль
Обновление балансировщика вызовет прерывание сервиса на 3–5 минут. Пожалуйста, выбирайте подходящее время для этой операции!
-
Перейдите в Platform Management.
-
В левой навигационной панели нажмите Network Management > Load Balancer.
-
Нажмите ⋮ > Update.
-
Обновите сетевые и ресурсные настройки по необходимости.
-
Устанавливайте характеристики разумно в соответствии с бизнес-требованиями. Также можно обратиться к Как правильно распределять ресурсы CPU и памяти для справки.
-
Внутренняя маршрутизация поддерживает обновление только из состояния Disabled в состояние Enabled.
-
-
Нажмите Update.
Удаление балансировщика нагрузки через веб-консоль
После удаления балансировщика будут удалены связанные порты и правила, восстановить их будет невозможно.
-
Перейдите в Platform Management.
-
В левой навигационной панели нажмите Network Management > Load Balancer.
-
Нажмите ⋮ > Delete и подтвердите.
Удаление балансировщика нагрузки через 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для прокси уровня 7.tcp|udpдля прокси уровня 4.
- Для прокси уровня 4
serviceGroupобязателен. Для уровня 7serviceGroupопционален. При поступлении запроса 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) через веб-консоль
-
Перейдите в Container Platform.
-
В левой навигационной панели нажмите Network > Load Balancing.
-
Нажмите на имя балансировщика нагрузки для перехода на страницу деталей.
-
Нажмите Add Listener Port.
-
Ознакомьтесь с инструкциями ниже для настройки параметров.
-
Нажмите OK.
Создание портов слушателя (Frontend) через CLI
Последующие действия
Для трафика с портов HTTP, gRPC и HTTPS, помимо дефолтной внутренней группы маршрутов, можно настроить более разнообразные правила сопоставления бэкенд-сервисов rules. Балансировщик сначала пытается сопоставить соответствующий бэкенд согласно установленным правилам; если совпадений нет, то направляет трафик на бэкенд из указанной внутренней группы маршрутов.
Связанные операции
Вы можете нажать значок ⋮ справа на странице списка или кнопку Actions в правом верхнем углу страницы деталей, чтобы при необходимости обновить дефолтный маршрут или удалить порт слушателя.
Если метод распределения ресурсов балансировщика — Port, удалять связанные порты слушателя в представлении Platform Management могут только администраторы.
Настройка правил
Добавление правил переадресации для портов слушателя протоколов HTTPS, HTTP и gRPC. Балансировщик будет сопоставлять бэкенд-сервисы на основе этих правил.
Правила переадресации нельзя добавлять для протоколов TCP и UDP.
Пример ресурса Rule (CR)
- Обязательно, указывает
Frontend, к которому принадлежит это правило. - Обязательно, указывает ALB, к которому принадлежит это правило.
- Аналогично
Frontend. - Аналогично
Frontend. - Чем меньше число, тем выше приоритет.
- Аналогично
Frontend.
dslx
dslx — это предметно-ориентированный язык, используемый для описания критериев сопоставления.
Например, следующее правило соответствует запросу, который удовлетворяет всем нижеперечисленным условиям:
- URL начинается с /app-a или /app-b
- метод POST
- параметр URL с ключом group равен vip
- хост соответствует *.app.com
- заголовок LOCATION равен east-1 или east-2
- присутствует cookie с именем uid
- исходные IP-адреса находятся в диапазоне 1.1.1.1-1.1.1.100
Создание правила через веб-консоль
-
Перейдите в Container Platform.
-
В левой навигационной панели нажмите Network > Load Balancing.
-
Нажмите на имя балансировщика нагрузки.
-
Нажмите на имя порта слушателя.
-
Нажмите Add Rule.
-
Ознакомьтесь с описаниями ниже для настройки параметров.
-
Нажмите Add.
Создание правила через CLI
Логи и мониторинг
Сочетая визуализированные логи и данные мониторинга, можно быстро выявлять и устранять проблемы или сбои балансировщика нагрузки.
Просмотр логов
-
Перейдите в Platform Management.
-
В левой навигационной панели нажмите Network Management > Load Balancer.
-
Нажмите на Load Balancer Name.
-
Во вкладке Logs просмотрите логи работы балансировщика с точки зрения контейнера.
Метрики мониторинга
В кластере, где расположен балансировщик, должны быть развернуты сервисы мониторинга.
-
Перейдите в Platform Management.
-
В левой навигационной панели нажмите Network Management > Load Balancer.
-
Нажмите на Load Balancer Name.
-
Во вкладке Monitoring просмотрите тренды метрик балансировщика с точки зрения узла.
-
Usage Rate: текущая загрузка CPU и памяти балансировщика на данном узле.
-
Throughput: общий входящий и исходящий трафик инстанса балансировщика.
-