Gateway API
Модель маршрутизации трафика вместо Ingress.
В релизе 2.15 входящий трафик кластера управления переведён на Gateway API, что продолжает миграцию с NGINX Ingress Controller. В клиентских кластерах по-прежнему сохраняется возможность выбора: можно использовать как NGINX Ingress Controller, так и Gateway API. Такой подход упрощает настройку маршрутизации для разных реализаций Service Mesh (Istio, Cilium и др.).
Gateway API и ролевая модель:
| Объект | Уровень | Кто настраивает | Назначение |
|---|---|---|---|
| GatewayClass | Кластер | Поставщик инфраструктуры | Тип контроллера и параметры реализации |
| Gateway | Кластер | Оператор кластера | Точка входа: адреса, обработчики (listeners), TLS |
| Маршруты (HTTPRoute, GRPCRoute) | Неймспейс | Разработчик / владелец приложения | Прикладная маршрутизация к backend-сервисам |
Где настраивать в GUI:
- Gateway Classes и Gateways: кластер → раздел Сети;
- Маршруты: кластер → неймспейс → раздел Сети → Маршруты.
- Через кастомные ресурсы: кластер → раздел Администрирование → Кастомные ресурсы → API-группа gateway.networking.k8s.io.
Подробнее о преимуществах Gateway API и стратегии миграции с Ingress см. Ingress NGINX умер, да здравствует Gateway API.
Поставка Gateway API в кластер
Для работы с ресурсами Gateway API в кластере должны быть установлены CRDs Gateway API. В платформе «Штурвал» их ставит сервис CRD модуля Gateway API (shturval-gateway-api-crds) в неймспейс gateway-system. Сервис является критически важным для работы платформы и устанавливается по умолчанию в кластер управления и в клиентские кластеры, в GUI доступны соответствующие разделы интерфейса.
Проверить установленный CRD: кластер → Сервисы и репозитории → Установленные сервисы → найдите CRD модуля Gateway API (shturval-gateway-api-crds) → Управлять.
Установить в GUI развернутого кластера: если сервис отсутствует в установленных, откройте Сервисы и репозитории → Доступные чарты → чарт shturval-gateway-api-crds → Установить. Создайте и выберите неймспейс gateway-system. Подробнее — CRD модуля Gateway API и Как развернуть новый сервис.
После успешного развертывания CRD модуля Gateway API в GUI будут доступны соответствующие разделы интерфейса.
Контроллер Gateway API
CRDs, поставляемые в кластер, не обрабатывают трафик — для маршрутизации нужен контроллер, связанный с GatewayClass.
Перед включением контроллера Gateway API в кластере убедитесь в совместимости его версии с CRD в кластере. В платформе «Штурвал» 2.15 чарт shturval-gateway-api-crds поставляет CRD Gateway API версии 1.6.1. Контроллер должен поддерживать эту версию спецификации.
Если кластер принимает входящий трафик через Gateway API, контроллер Cilium уже включён. Если в клиентском кластере установлен NGINX Ingress Controller, контроллер Cilium по умолчанию выключен: как включить его — Контроллер Gateway API в Cilium. Для выделения адресов Gateway создайте пул IP-адресов CiliumLoadBalancerIPPool.
Влияние Cilium Network Policies на работу Gateway
Gateway API и Cilium Network Policies — взаимосвязанные механизмы. Изменение политик напрямую влияет на доступность Gateway-маршрутов. Подробнее о совместной настройке Gateway API и сетевых политик см. статью Gateway API и Cilium Network Policies.
Если в кластере планируется использовать или уже настроены Cilium Network Policies, необходимо учесть:
- Для работы Gateway в кластере необходимо разрешить трафик в двух точках: доступ к самому Gateway (внешний трафик) и доступ от Gateway к бэкенду.
- Трафик от Gateway с контроллером Cilium приходит с идентичностью
reserved:ingress. Чтобы разрешить доступ к бэкенду, используйтеCiliumNetworkPolicyс правиломfromEntities: [ingress]. - Стандартный Kubernetes
NetworkPolicyдля контроля трафика от Gateway с контроллером Cilium не подходит — он не умеет выбирать идентичностьingress.