Балансировщик нагрузки — это сервис, который распределяет трафик по контейнерным инстансам. Используя функциональность балансировки нагрузки, он автоматически распределяет входящий трафик для вычислительных компонентов и перенаправляет его на контейнерные инстансы этих компонентов. Балансировка нагрузки может повысить отказоустойчивость вычислительных компонентов, масштабировать внешнюю сервисную способность этих компонентов и улучшить доступность приложений.
Администраторы платформы могут создавать одноточечные или высокодоступные балансировщики нагрузки для любого кластера на платформе, а также централизованно управлять и распределять ресурсы балансировщиков нагрузки. Например, балансировка нагрузки может быть назначена проектам, обеспечивая использование балансировки только пользователями с соответствующими правами в проекте.
Пожалуйста, обратитесь к таблице ниже для объяснения связанных понятий в этом разделе.
Параметр | Описание |
---|---|
Load Balancer | Программное или аппаратное устройство, которое распределяет сетевые запросы между доступными узлами в кластере. Используемый на платформе балансировщик нагрузки — это программный балансировщик уровня 7. |
VIP | Виртуальный IP-адрес (Virtual IP Address) — IP-адрес, который не соответствует конкретному компьютеру или конкретной сетевой карте. При использовании балансировщика нагрузки типа высокодоступности адрес доступа должен быть VIP. |
Высокая доступность Load Balancer требует наличия VIP. Пожалуйста, обратитесь к Настройка VIP.
enableLbSvc
равном true будет создан внутренний сервис типа LoadBalancer для адреса доступа балансировщика нагрузки.
lbSvcAnnotations
— ссылка на конфигурацию аннотаций сервиса типа LoadBalancer.Перейдите в Platform Management.
В левой боковой панели нажмите Network Management > Load Balancer.
Нажмите Create Load Balancer.
Следуйте инструкциям ниже для завершения настройки сети.
Параметр | Описание |
---|---|
Network Mode |
|
Service and Annotations (Alpha) |
|
Access Address | Адрес доступа для балансировки нагрузки, то есть адрес сервиса инстанса балансировщика нагрузки. После успешного создания балансировщика к нему можно обращаться по этому адресу.
|
Следуйте инструкциям ниже для завершения настройки ресурсов.
Параметр | Описание |
---|---|
Specification | Установите характеристики разумно в соответствии с бизнес-требованиями. Также можно обратиться к Как правильно распределять ресурсы CPU и памяти для справки. |
Deployment Type |
|
Replicas | Количество реплик — это количество контейнерных групп балансировщика нагрузки. Совет: Для обеспечения высокой доступности балансировщика рекомендуется количество реплик не менее 3. |
Node Labels | Фильтрация узлов по меткам для развертывания балансировщика нагрузки. Совет:
|
Resource Allocation Method |
|
Assigned Project |
|
Нажмите Create. Процесс создания займет некоторое время, пожалуйста, подождите.
Обновление балансировщика вызовет прерывание сервиса на 3–5 минут. Пожалуйста, выбирайте подходящее время для этой операции!
Перейдите в Platform Management.
В левой навигационной панели нажмите Network Management > Load Balancer.
Нажмите ⋮ > Update.
Обновите сетевые и ресурсные настройки по необходимости.
Устанавливайте характеристики разумно в соответствии с бизнес-требованиями. Также можно обратиться к Как правильно распределять ресурсы CPU и памяти для справки.
Внутренняя маршрутизация поддерживает обновление только из состояния Disabled в состояние Enabled.
Нажмите Update.
После удаления балансировщика будут удалены связанные порты и правила, восстановить их будет невозможно.
Перейдите в Platform Management.
В левой навигационной панели нажмите Network Management > Load Balancer.
Нажмите ⋮ > Delete и подтвердите.
Балансировщик нагрузки поддерживает приём клиентских соединений через порты слушателя и соответствующие протоколы, включая HTTPS, HTTP, gRPC, TCP и UDP.
Если необходимо добавить HTTPS-порт слушателя, следует также обратиться к администратору для назначения TLS-сертификата текущему проекту для шифрования.
Frontend
.$alb_name-$port
.$secret_ns/$secret_name
.Frontend
.
http|https|grpc|grpcs
для прокси уровня 7.tcp|udp
для прокси уровня 4.serviceGroup
обязателен. Для уровня 7 serviceGroup
опционален. При поступлении запроса 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.Перейдите в Container Platform.
В левой навигационной панели нажмите Network > Load Balancing.
Нажмите на имя балансировщика нагрузки для перехода на страницу деталей.
Нажмите Add Listener Port.
Ознакомьтесь с инструкциями ниже для настройки параметров.
Параметр | Описание |
---|---|
Protocol | Поддерживаемые протоколы: HTTPS, HTTP, gRPC, TCP и UDP. При выборе HTTPS необходимо добавить сертификат; для gRPC добавление сертификата опционально. Примечание:
|
Internal Routing Group | - При выборе алгоритма балансировки Round Robin (RR) трафик распределяется по портам внутренней маршрутизации в порядке группы маршрутов. - При выборе алгоритма Weighted Round Robin (WRR) внутренние маршруты с большим значением веса имеют большую вероятность выбора; трафик распределяется по портам внутренней маршрутизации согласно рассчитанной вероятности на основе настроенного weight. Совет: Вероятность рассчитывается как отношение текущего значения веса к сумме всех весов. |
Session Persistence | Всегда перенаправляет определённые запросы на бэкенд-сервисы, соответствующие вышеуказанной внутренней группе маршрутов. Определённые запросы включают (выберите один):
|
Backend Protocol | Протокол, используемый для передачи трафика на бэкенд-сервисы. Например, при передаче на Kubernetes или dex-сервисы бэкенда следует выбрать протокол HTTPS. |
Нажмите OK.
Для трафика с портов HTTP, gRPC и HTTPS, помимо дефолтной внутренней группы маршрутов, можно настроить более разнообразные правила сопоставления бэкенд-сервисов rules. Балансировщик сначала пытается сопоставить соответствующий бэкенд согласно установленным правилам; если совпадений нет, то направляет трафик на бэкенд из указанной внутренней группы маршрутов.
Вы можете нажать значок ⋮ справа на странице списка или кнопку Actions в правом верхнем углу страницы деталей, чтобы при необходимости обновить дефолтный маршрут или удалить порт слушателя.
Если метод распределения ресурсов балансировщика — Port, удалять связанные порты слушателя в представлении Platform Management могут только администраторы.
Добавление правил переадресации для портов слушателя протоколов HTTPS, HTTP и gRPC. Балансировщик будет сопоставлять бэкенд-сервисы на основе этих правил.
Правила переадресации нельзя добавлять для протоколов TCP и UDP.
Frontend
, к которому принадлежит это правило.Frontend
.Frontend
.Frontend
.dslx — это предметно-ориентированный язык, используемый для описания критериев сопоставления.
Например, следующее правило соответствует запросу, который удовлетворяет всем нижеперечисленным условиям:
Перейдите в Container Platform.
В левой навигационной панели нажмите Network > Load Balancing.
Нажмите на имя балансировщика нагрузки.
Нажмите на имя порта слушателя.
Нажмите Add Rule.
Ознакомьтесь с описаниями ниже для настройки параметров.
Параметр | Описание |
---|---|
Internal Route Group | - При выборе алгоритма балансировки Round Robin (RR) трафик распределяется по портам внутренней маршрутизации в порядке группы маршрутов. - При выборе алгоритма Weighted Round Robin (WRR) внутренние маршруты с большим значением веса имеют большую вероятность выбора; трафик распределяется по портам внутренней маршрутизации согласно рассчитанной вероятности на основе настроенного weight. Совет: Вероятность рассчитывается как отношение текущего значения веса к сумме всех весов. |
Rule | Критерии сопоставления балансировщика с бэкенд-сервисами, включая индикаторы правил и их значения. Отношение между разными индикаторами — «и».
|
Session Persistence | Всегда перенаправляет определённые запросы на бэкенд-сервисы, соответствующие внутренней группе маршрутов. Определённые запросы включают (выберите один):
|
URL Rewrite | Перезаписывает обращаемый адрес на адрес бэкенд-сервиса платформы. Для работы требуется настройка правила URL с индикатором StartsWith, а адрес перезаписи (rewrite-target) должен начинаться с /. Например: при настройке домена bar.example.com и начального пути URL / , включении функции URL Rewrite и установке адреса перезаписи в /test обращение к bar.example.com будет переписано в bar.example.com/test. |
Backend Protocol | Протокол, используемый для передачи трафика на бэкенд-сервис. Например, при передаче на Kubernetes или dex-сервисы бэкенда следует выбрать протокол HTTPS. |
Redirection | Перенаправляет трафик на новый адрес, а не на бэкенд-сервисы внутренней группы маршрутов. Например: при обновлении страницы по исходному адресу, чтобы избежать ошибок 404 или 503, трафик можно перенаправить на новый адрес.
|
Rule Priority | Приоритет сопоставления правил: 10 уровней от 1 до 10, где 1 — самый высокий приоритет, по умолчанию 5. Если одновременно удовлетворяются несколько правил, выбирается правило с более высоким приоритетом; при равенстве приоритетов применяется правило по умолчанию. |
Cross-Origin Resource Sharing (CORS) | CORS (Cross-origin resource sharing) — механизм, использующий дополнительные HTTP-заголовки, чтобы указать браузеру, что веб-приложение с одного источника (домена) может получить доступ к ресурсам с другого источника. При запросе ресурса с сервера другого домена, протокола или порта инициируется кросс-доменный HTTP-запрос. |
Allowed Origins | Указывает разрешённые источники доступа.
|
Allowed Headers | Указывает HTTP-заголовки, разрешённые в CORS, чтобы избежать лишних предварительных запросов и повысить эффективность. Примеры: Примечание: Другие часто используемые или кастомные заголовки не перечислены; заполняйте по необходимости.
|
Нажмите Add.
Сочетая визуализированные логи и данные мониторинга, можно быстро выявлять и устранять проблемы или сбои балансировщика нагрузки.
Перейдите в Platform Management.
В левой навигационной панели нажмите Network Management > Load Balancer.
Нажмите на Load Balancer Name.
Во вкладке Logs просмотрите логи работы балансировщика с точки зрения контейнера.
В кластере, где расположен балансировщик, должны быть развернуты сервисы мониторинга.
Перейдите в Platform Management.
В левой навигационной панели нажмите Network Management > Load Balancer.
Нажмите на Load Balancer Name.
Во вкладке Monitoring просмотрите тренды метрик балансировщика с точки зрения узла.
Usage Rate: текущая загрузка CPU и памяти балансировщика на данном узле.
Throughput: общий входящий и исходящий трафик инстанса балансировщика.