Gateways
Gateway — экземпляр инфраструктуры обработки трафика, конфигурация которого определяет: адреса, обработчики (listeners) и политики привязки маршрутов. Каждый Gateway связан с GatewayClass, который описывает фактический тип контроллера обработки трафика для Gateway.
Gateway создаётся в неймспейсе кластера, управление доступно на уровне кластера. Где настраивать:
- кластер → раздел Сети → Gateways.
- Через кастомные ресурсы: кластер → раздел Администрирование → Кастомные ресурсы → API-группа gateway.networking.k8s.io → Gateway.
На странице Gateways отображается список созданных в кластере Gateways.
Скриншот: список Gateways

Создание Gateway
На странице Gateways нажмите + Добавить Gateway. На открывшейся странице заполните:
- Имя — имя Gateway, при редактировании не изменяется.
- Неймспейс — выберите неймспейс Gateway из списка неймспейсов кластера или создайте неймспейс, нажав + Создать неймспейс.
- Лейблы и Аннотации — при необходимости.
В блоке Спецификация объекта заполните:
- Gateway Class — выберите GatewayClass, созданный в кластере.
- Адреса (необязательно) — один или несколько запрашиваемых IPv4-адресов доступа к Gateway. Если не заполнено, адрес или набор адресов (hostname) могут быть присвоены автоматически (зависит от реализации).
Скриншот: Gateway

Обработчики (listeners)
Обработчики описывают, как Gateway должен прослушивать (обрабатывать) трафик. К обработчикам могут прикрепляться маршруты (HTTPRoute, GRPCRoute), определяющие куда направлять трафик.
- Трафик, проходящий через Gateway, должен соответствовать только одному обработчику. Идентичная конфигурация обработчиков в одном Gateway приводит к ошибкам обработки трафика.
- Если трафик не может быть обработан выбранным обработчиком, он отбрасывается.
В Gateway должен быть настроен минимум один обработчик. Доступна конфигурация:
| Поле | Обязательность | Описание |
|---|---|---|
| Имя | Да | Имя обработчика (listener). Должно быть уникально в Gateway |
| Протокол | Да | Сетевой протокол, который обработчик ожидает получить. Доступные протоколы: HTTP, HTTPS |
| Порт | Да | Сетевой порт. Множество обработчиков могут использовать одинаковые порты (например, 80, 443) |
| Hostname | Нет | Имя хоста, для которого обработчик принимает трафик. Если не задано — для всех доменов. Имя с префиксом wildcard (*.) интерпретируются как сопоставление по суффиксу, например, для *.example.com будет соответствовать как test.example.com, так и foo.test.example.com, но не example.com. |
Уникальность комбинаций: для протоколов HTTP и HTTPS должны отличаться порт, протокол и hostname (если задан). При нарушении правила уникальности добавить обработчик нельзя.
Скриншот: обработчик HTTP

При выборе протокола HTTPS доступна настройка TLS для обработчика.
- Режим TLS — определяет поведение при TLS-соединения,
Terminate(по умолчанию) — Gateway расшифровывает TLS-трафик илиPassthrough— Gateway не расшифровывает TLS-трафик. - Secrets — Secrets с TLS-сертификатами и ключами для расшифровки входящего TLS-трафика. По умолчанию доступны secrets из неймспейса Gateway.
Скриншот: обработчик HTTPS с TLS

В блоке Разрешённые маршруты (allowedRoutes) доступна настройка конфигурации, определяющая из каких неймспейсов могут быть прикреплены маршруты к этому обработчику. Разрешения:
| Значение | Описание |
|---|---|
| ALL | Маршруты из любого неймспейса могут быть прикреплены к обработчику |
| Same | Маршруты только из неймспейса Gateway могут быть прикреплены. Установлено по умолчанию |
| Selector | Маршруты из неймспейсов в соответствии с заданным селектором могут быть прикреплены к обработчику |
Скриншот: выбор маршрутов по селектору неймспейсов

Нажмите Сохранить, чтобы создать Gateway.
Пример манифеста Gateway
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
namespace: infra
spec:
gatewayClassName: cilium
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: Selector
selector:
matchLabels:
gateway-access: "true"
- name: https
protocol: HTTPS
port: 443
hostname: app.example.com
tls:
mode: Terminate
certificateRefs:
- name: app-tls
kind: Secret
allowedRoutes:
namespaces:
from: Same
Просмотр и редактирование
На странице просмотра Gateway доступны вкладки: Gateway, Маршруты, Лейблы и аннотации и Манифест созданного Gateway.
На вкладке Gateway отображается статус Gateway и каждого обработчика:
- Состояние — список conditions Gateway с цветовой индикацией. Нажатие на состояние открывает боковое окно с дополнительной информацией;
- Адреса в блоке основной информации — один или несколько адресов в блоке основной информации, назначенные Gateway (
status.addresses). При отсутствии данных в поле ошибка назначения адреса отобразится в состоянии Gateway. Не всегда запрашиваемые IPv4-адреса доступа при конфигурации создания Gateway могут быть назначены в конечном итоге Gateway; - Состояния обработчика — в строке обработчика conditions listeners. При раскрытии — полная конфигурация и количество связанных маршрутов.
На вкладке Маршруты отображается список связанных маршрутов с Gateway. Нажатие на строку открывается страницу просмотра выбранного маршрута.
Скриншот: список маршрутов

Удаление
Удалить Gateway вы можете из списка на странице Gateways или со страницы просмотра.
Связанные разделы
- Gateway Classes — выбор GatewayClass при создании Gateway;
- Маршруты Gateway API — привязка HTTPRoute и GRPCRoute маршрутов к Gateway.
- Gateway API — обзор и типичный сценарий настройки;
- CRD модуля Gateway API — установка CRD Gateway API в кластер;
- Контроллер Gateway API в Cilium — включение контроллера в shturval-networking.