Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
    • Обзор
      • Обзор
      • Установить Gateway API
        • Gateway
        • HTTPRoute
        • TLSRoute
        • Service для Gateway API
    • Настройка групп безопасности
    • Работа с сервисными аккаунтами
    • Создание и изменение ресурсов по конфигурации
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • История изменений
  • Обучающие курсы

В этой статье:

  • Gateway
  • GatewaySpec
  1. Инструменты для Managed Service for Kubernetes
  2. Gateway API
  3. Конфигурация ресурсов
  4. Gateway

Поля ресурса Gateway

Статья создана
Yandex Cloud
Обновлена 6 мая 2025 г.
  • Gateway
  • GatewaySpec

В ресурсе Gateway определяются правила приема входящего трафика и выбора маршрутов (ресурсов HTTPRoute и TLSRoute) для этого трафика. По этим правилам Gateway API Application Load Balancer создает:

  • балансировщик с нужными обработчиками;
  • группы бэкендов;
  • HTTP-роутеры (если используются ресурсы HTTPRoute).

Gateway предназначен для оператора кластера. Разработчики приложений должны использовать TLSRoute или HTTPRoute.

Gateway — ресурс Kubernetes, определенный проектом Kubernetes Gateway API. Ниже описаны поля и аннотации ресурса, с которыми работает Gateway API Application Load Balancer. Полное описание конфигурации ресурса см. в документации Kubernetes Gateway API.

GatewayGateway

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: <string>
  namespace: <string>
  annotations:
    gateway.alb.yc.io/security-groups: <string>
spec: <GatewaySpec>

Где:

  • apiVersion: gateway.networking.k8s.io/v1

  • kind: Gateway

  • metadata (ObjectMeta, обязательное)

    Метаданные ресурса.

    • name (string, обязательное)

      Имя ресурса. Подробнее о формате см. в документации Kubernetes.

      Не является именем балансировщика в Application Load Balancer.

    • namespace (string)

      Пространство имен, к которому относится ресурс. Значение по умолчанию — default.

    • annotations (map[string]string, обязательное)

      Аннотации ресурса.

      • gateway.alb.yc.io/security-groups (string, обязательное)

        Список групп безопасности Virtual Private Cloud для балансировщика. Идентификаторы групп перечисляются через запятую, например:

        gateway.alb.yc.io/security-groups: b0c2kotoidcoh6haf8cu,e2lnhhdj9a0aqmr78d36,e9bud5itjnl8mkjj7td1
        

        Для корректной работы балансировщика и Gateway API группы безопасности должны быть настроены, как описано в разделе Настройка групп безопасности для инструментов Application Load Balancer для Managed Service for Kubernetes.

  • spec (GatewaySpec, обязательное)

    Спецификация ресурса. Подробнее см. ниже.

GatewaySpecGatewaySpec

gatewayClassName: yc-df-class
listeners:
  - name: <string>
    hostname: <string>
    port: <int32>
    protocol: <string>
    tls:
      mode: <string>
      certificateRefs:
        - group: <string>
          kind: <string>
          name: <string>
          namespace: <string>
        - ...
    allowedRoutes:
      namespaces:
        from: <string>
        selector:
          matchExpressions:
            - key: <string>
              operator: <string>
              values:
                - <string>
                - ...
          matchLabels:
            <string>: <string>
            ...
  - ...
addresses:
  - type: IPAddress
    value: <string>
  - ...

Где:

  • gatewayClassName: yc-df-class

  • listeners ([]Listener)

    Обработчики балансировщика.

    • name (string)

      Внутреннее имя обработчика.

      Используется только для нужд Kubernetes и не является именем обработчика в Application Load Balancer.

      Имя должно иметь формат доменного, то есть соответствовать следующему регулярному выражению:

      [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*

      Например, имена example, example.com, foo.example.com подходят, а example.com/bar, -example. — нет.

      Максимальная длина имени — 63 символа.

    • hostname (string)

      Доменное имя, для которого действует обработчик.

      Чтобы указать на все возможные поддомены любых уровней, вместо первого уровня доменного имени используйте звездочку *. В этом случае значение нужно обернуть в кавычки.

      Например, значение "*.example.com" соответствует доменным именам foo.example.com, foo-bar.example.com, foo.bar.example.com, foo.bar.baz.example.com и т. п. (но не example.com).

      Заменить звездочкой только часть первого уровня доменного имени, например *foo.example.com, нельзя.

      К обработчику будут привязаны только те маршруты (ресурсы HTTPRoute и TLSRoute), доменные имена которых (поле spec.hostnames) пересекаются с доменным именем в этом поле.

    • port (int32)

      Порт, на котором обработчик принимает входящий трафик.

    • protocol (string)

      Протокол, по которому обработчик принимает входящий трафик: HTTP, HTTPS или TLS.

    • tls (GatewayTlsConfig)

      Настройки TLS, которые используются при работе с входящим HTTPS- или TLS-трафиком.

      • mode (string)

        Режим терминирования TLS-соединений.

        Единственное поддерживаемое значение и значение по умолчанию — Terminate: соединения терминируются с использованием сертификатов из поля certificateRefs, расшифрованный трафик отправляется на бэкенды. Режим Passthrough (соединения не терминируются) не поддерживается.

      • certificateRefs ([]SecretObjectReference)

        Список ресурсов Kubernetes, в которых хранятся TLS-сертификаты.

        Используется, только если значение поля protocol — HTTPS или TLS. В этом случае в списке должен быть хотя бы один сертификат.

        В балансировщике используется только первый сертификат из списка, остальные игнорируются.

        Добавить сертификат в кластер можно в виде секрета (ресурса Secret) через консоль управления Managed Service for Kubernetes или с помощью kubectl:

        kubectl create secret tls <имя_секрета> \
          -n <имя_пространства_имен> \
          --cert <путь_к_файлу_с_сертификатом> \
          --key <путь_к_файлу_с_закрытым_ключом_сертификата>
        
        • group (string)

          Имя группы API Kubernetes, к которой относится ресурс с сертификатом, например networking.k8s.io.

          Значение по умолчанию — пустая строка, обозначающая корневую группу API.

        • kind (string)

          Тип ресурса Kubernetes, в котором хранится сертификат.

          Значение по умолчанию — Secret.

        • name (string)

          Имя ресурса Kubernetes, в котором хранится сертификат.

        • namespace (string)

          Пространство имен, к которому относится имя ресурса с сертификатом.

    • allowedRoutes (AllowedRoutes)

      Правила, по которым для обработчика выбираются маршруты (ресурсы HTTPRoute и TLSRoute). Чтобы маршрут был выбран, в конфигурации этих ресурсов должно быть указание на Gateway в поле spec.parentRefs.

      По этим маршрутам создаются группы бэкендов, привязываемые к обработчику. При использовании HTTPRoute также создаются HTTP-роутеры.

      • namespaces (RouteNamespaces)

        Правило выбора пространств имен, к которым относятся ресурсы HTTPRoute и TLSRoute, привязываемые к обработчику.

        • from (string)

          Тип правила:

          • All — выбираются ресурсы из всех пространств имен.
          • Same — выбираются ресурсы только из того же пространства имен, что и ресурс Gateway (поле metadata.namespace).
          • Selector — выбираются ресурсы из пространств имен, соответствующих требованиям из поля selector.
        • selector (LabelSelector)

          Селектор — набор требований к пространствам имен. Выбираются только те пространства, которые удовлетворяют всем требованиям из полей matchExpressions и matchLabels.

          Подробнее см. в справочнике API Kubernetes.

          Если значение поля from — не Selector, то поле selector игнорируется.

  • addresses ([]GatewayAddress)

    Настройки публичных IP-адресов балансировщика.

    Если поле не указано, балансировщику будет автоматически присвоен один публичный адрес.

    • type: IPAddress

    • value (string)

      Публичный IP-адрес Yandex Virtual Private Cloud, присваиваемый балансировщику.

      Перед указанием адреса в этом поле его нужно зарезервировать по инструкции.

Была ли статья полезна?

Предыдущая
Установить Gateway API
Следующая
HTTPRoute
Проект Яндекса
© 2025 ООО «Яндекс.Облако»