Настройка маршрута GatewayAPI
Содержание
Предварительные требованияНастройка через веб-консольСоздание HTTPRouteСоздание TCP/UDP маршрутаНастройка через YAMLВведениеHostnamesPublish to ListenerRulesMatchesFiltersBackendРасширенные настройки правил HTTPRouteСледующий шагСвязанные задачиПредварительные требования
Пожалуйста, убедитесь, что вы ознакомились с документацией по установке перед продолжением.
Настройка через веб-консоль
- Перейдите в
Alauda Container Platform -> Networking -> Routes - Нажмите кнопку
Create Route
Создание HTTPRoute
Создание TCP/UDP маршрута
Настройка через YAML
Введение
Каждый маршрут — это CR, определённый спецификацией GatewayAPI. Для подробной информации о полях и параметрах настройки каждого типа маршрута, пожалуйста, обратитесь к официальной документации: - HTTPRoute specification - TCPRoute specification - UDPRoute specification - GRPCRoute specification - TLSRoute specification
Hostnames
Поле hostnames в маршруте представляет собой массив строк.
Оно следует правилам пересечения имён хостов.
Publish to Listener
sectionName— это имя слушателя.- Маршруты могут быть прикреплены только к слушателям, поддерживающим их конкретный тип.
- По умолчанию маршруты могут быть прикреплены только к слушателям, где
Gatewayнаходится в том же namespace. Для прикрепления между namespace смотрите раздел прикрепление к gateway, созданному в другом namespace.
Rules
Каждый маршрут может содержать несколько правил. Каждое правило состоит из следующих компонентов:
Matches
Определяет условия, которые должны быть выполнены, чтобы запрос был маршрутизирован этим правилом.
Правило может содержать несколько совпадений:
- Каждое совпадение состоит из нескольких условий (например, путь, заголовки, параметры запроса, метод)
- Условия внутри одного совпадения используют логику AND (все должны быть выполнены)
- Совпадения между собой используют логику OR (достаточно выполнить любое совпадение)
Пример: Если Match-1 требует path=/api И header=v1, а Match-2 требует query=test, то запрос будет маршрутизирован, если он соответствует либо (path=/api И header=v1), либо (query=test).
Типы условий совпадения
Ссылки на условия совпадения
Filters
Определяет преобразования или модификации, применяемые к запросам/ответам.
Типы фильтров
Примечания:
RequestRedirectиURLRewriteне могут использоваться одновременно в одном правилеReplacePrefixMatchсовместим только сPathPrefixв HTTPRouteMatch- Имена заголовков нечувствительны к регистру согласно RFC 7230
- Несколько значений одного заголовка должны использовать формат с разделением запятыми согласно RFC 7230
Ссылки на фильтры
Backend
Определяет целевой сервис(ы), на которые должны перенаправляться подходящие запросы.
Каждый сервис может иметь поле weight для указания доли трафика, направляемой на этот сервис.
Расширенные настройки правил HTTPRoute
Правила HTTPRoute поддерживают дополнительные параметры конфигурации, такие как политики повторных попыток, таймауты и другие параметры управления трафиком.
Таймауты
Повторные попытки
Сессионная аффинность
Настраивает параметры сессионной аффинности, чтобы обеспечить маршрутизацию запросов от одного клиента к одному и тому же бэкенду.