Правило — это Custom Resource (CR), который определяет, как входящие запросы сопоставляются и обрабатываются ALB.
Ingress, обрабатываемые ALB, могут быть автоматически преобразованы в правила.
Ниже приведено демонстрационное правило, чтобы вы могли быстро получить представление о том, как использовать правила.
правило должно быть привязано к frontend и alb через метки.
Frontend, к которому принадлежит это правило.DSLX — это предметно-ориентированный язык, используемый для описания критериев сопоставления. Например, правило ниже сопоставляет запрос, который удовлетворяет всем следующим условиям:
Приоритет — это целое число от 0 до 10, где меньшие значения означают более высокий приоритет. Чтобы настроить приоритет правила в ingress, можно использовать следующий формат аннотации:
Для правил достаточно задать приоритет напрямую в .spec.priority целочисленным значением.
После того, как запрос сопоставлен с правилом, к запросу можно применить следующие действия
| Функция | Описание | Ссылка |
|---|---|---|
| Timeout | Настройка параметров таймаута для запросов. | timeout |
| Redirect | Перенаправление входящих запросов на указанный URL. | redirect |
| CORS | Включение Cross-Origin Resource Sharing (CORS) для приложения. | cors |
| Header Modification | Позволяет изменять заголовки запроса или ответа. | header modification |
| URL Rewrite | Перезаписывает URL входящих запросов перед их пересылкой. | url-rewrite |
| WAF | Интеграция Web Application Firewall (WAF) для повышения безопасности. | waf |
| OTEL | Включение OpenTelemetry (OTEL) для распределённого трассирования и мониторинга. | otel |
| Keepalive | Включение или отключение функции keepalive для приложения. | keepalive |
По умолчанию протокол backend установлен в HTTP. Если требуется использовать TLS повторное шифрование, можно настроить HTTPS.
В правиле можно настроить один или несколько сервисов.
По умолчанию ALB использует алгоритм round-robin (RR) для распределения запросов между backend-сервисами. Однако можно назначать веса отдельным сервисам или выбрать другой алгоритм балансировки нагрузки.
Подробнее смотрите в разделе Balance Algorithm.

Каждое поле в веб-интерфейсе соответствует полю CR.
Если протокол frontend (ft) — HTTPS или GRPCS, правило также может быть настроено на использование HTTPS. Сертификат можно указать либо в правиле, либо в ingress, чтобы сопоставить сертификат для конкретного порта.
Поддерживается termination, а также повторное шифрование, если протокол backend — HTTPS. Однако вы не можете указывать сертификат для связи с backend-сервисом.
Сертификаты могут ссылаться на секреты из других namespace через аннотацию.
В .spec.certificate_name формат: $secret_namespace/$secret_name
В режиме edge клиент общается с ALB по HTTPS, а ALB общается с backend-сервисами по HTTP. Для этого:
.spec.certificate_nameВ режиме re-encrypt клиент общается с ALB по HTTPS, а ALB общается с backend-сервисами по HTTPS. Для этого:
.spec.certificate_nameКаждый ALB создаёт IngressClass с таким же именем и обрабатывает ingress в пределах одного проекта.
Если namespace ingress имеет метку вида cpaas.io/project: demo, это означает, что ingress принадлежит проекту demo.
ALB, у которых в конфигурации .spec.config.projects указан проект demo, автоматически преобразуют эти ingress в правила.
ALB слушает ingress и автоматически создаёт Frontend или Rule. Поле source определяется следующим образом:
spec.source.type в настоящее время поддерживает только ingress.spec.source.name — имя ingress.spec.source.namespace — namespace ingress.Для ingress без настроенных сертификатов ALB предоставляет стратегию использования сертификата по умолчанию.
Вы можете настроить Custom Resource ALB следующими параметрами:
.spec.config.defaultSSLStrategy: определяет SSL-стратегию для ingress без сертификатов.spec.config.defaultSSLCert: задаёт сертификат по умолчанию в формате $secret_ns/$secret_nameДоступные SSL-стратегии: