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