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

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

  • Конфигурирование политик
  • Применение политик к целевым ресурсам
  • Слияние конфигураций
  • Пример слияния
  • Слияние глобальных и специфичных настроек
  • Решение проблем
  1. Инструменты для Managed Service for Kubernetes
  2. Gwin
  3. Политики Gwin

Политики Gwin

Статья создана
Yandex Cloud
Обновлена 28 октября 2025 г.
  • Конфигурирование политик
  • Применение политик к целевым ресурсам
  • Слияние конфигураций
    • Пример слияния
    • Слияние глобальных и специфичных настроек
  • Решение проблем

Gwin — инструмент для создания балансировщиков нагрузки Yandex Application Load Balancer и управления ими в кластерах Yandex Managed Service for Kubernetes.

Контроллер поддерживает спецификации Ingress и Gateway API. Для настройки дополнительных возможностей Application Load Balancer, выходящих за рамки стандартной спецификации Kubernetes, реализован механизм политик, которые управляются с помощью CustomResourceDefinitions или аннотаций.

Дополнительные возможности, которые предоставляет Application Load Balancer:

  • Логирование и настройка правил отбрасывания логов.
  • Автомасштабирование с контролем ресурсных единиц.
  • Зональное управление трафиком для обеспечения высокой доступности сервисов.
  • Гибкие настройки балансировки, включающие локализацию трафика и режим паники.
  • Ограничение скорости обработки запросов на уровне виртуальных хостов.
  • Профили безопасности и WAF-защита.
  • Использование групп безопасности.
  • Интеграция с сервисами Yandex Cloud — Yandex Certificate Manager, Yandex Cloud Logging.

Механизм политик открывает доступ к этим возможностям. Он также позволяет:

  • Расширять стандартные ресурсы с помощью аннотаций, не меняя спецификации этих ресурсов.
  • Создавать сложные конфигурации из нескольких ресурсов политик.
  • Объединять оба подхода для большей гибкости.

Конфигурирование политикКонфигурирование политик

Конфигурировать политики можно двумя равнозначными способами — с помощью аннотаций и ресурсов политик.

  • Аннотации — быстрый способ добавить специфичные настройки к стандартным ресурсам. Аннотации поддерживают точечную нотацию, что позволяет создавать сложные вложенные конфигурации и записывать их в формате ключ:значение.

    Пример:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-ingress
      annotations:
        gwin.yandex.cloud/subnets: "subnet-1,subnet2"
        gwin.yandex.cloud/logs.logGroupId: "group-1"
        gwin.yandex.cloud/rules.backends.balancing.mode: "ROUND_ROBIN"
    spec:
      ...
    
  • Ресурсы политик — политики оформляются в виде отдельных ресурсов.

    Пример:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-ingress
    spec:
      ...
    ---
    apiVersion: gwin.yandex.cloud/v1
    kind: IngressPolicy
    metadata:
      name: example-ingress-policy
    spec:
      targetRefs:
        - kind: Ingress
          name: example-ingress
      policy:
        subnets: ["subnet-1", "subnet2"]
        logs:
          logGroupId: "group-1"
        rules:
          backends:
            balancing:
              mode: "ROUND_ROBIN"
    

Применение политик к целевым ресурсамПрименение политик к целевым ресурсам

Политики можно применять к определенным ресурсам с помощью ссылок (targetRefs) или селекторов (selector).

Пример с использованием ссылки:

kind: IngressPolicy
spec:
  targetRefs:
    - kind: Ingress
      name: my-app
...

Пример с использованием селектора:

kind: IngressPolicy
spec:
  selector:
    matchLabels:
      environment: production
 ...

Примечание

Политики действуют только в пределах одного пространства имен Kubernetes.

Слияние конфигурацийСлияние конфигураций

Когда к одному ресурсу применяется несколько источников конфигурации, они объединяются. Настройки сливаются рекурсивно: вложенные объекты объединяются на всех уровнях.

При объединении конфигурации проверяются на конфликты: если в разных источниках будут обнаружены одинаковые поля с разными значениями, возникнет ошибка валидации ресурса.

Пример слиянияПример слияния

Ресурс Ingress с аннотациями:

kind: Ingress
metadata:
  annotations:
    gwin.yandex.cloud/subnets: "subnet-1,subnet-2"
    gwin.yandex.cloud/logs.logGroupId: "group-1"

Ресурс политики IngressPolicy:

kind: IngressPolicy
spec:
  policy:
    securityGroups: ["sg-1"]
    rules:
      backends:
        balancing:
          mode: "ROUND_ROBIN"

Результат слияния настроек в единую конфигурацию:

securityGroups: ["sg-1"]
logs:
  subnets: ["subnet-1", "subnet-2"]
  securityGroups: ["sg-1"]
  logGroupId: "group-1"
  rules:
    backends:
      balancing:
        mode: "ROUND_ROBIN"

Слияние глобальных и специфичных настроекСлияние глобальных и специфичных настроек

Некоторые параметры можно задать как для всех объектов определенного типа, так и для конкретного объекта. Параметры для конкретного объекта не перезаписывают глобальные параметры и может возникнуть конфликт, если в разных источниках конфигурации в одном поле заданы разные значения.

Пример конфликтующих конфигураций:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: my-gateway
  annotations:
    # Параметр задан для всех обработчиков:
    gwin.yandex.cloud/listeners.http.protocolSettings.allowHTTP10: "true"
spec:
  ...
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: my-gateway
  annotations:
    # Параметр задан для конкретного обработчика «api»:
    gwin.yandex.cloud/listener.api.http.protocolSettings.allowHTTP10: "false"
spec:
  ...

Решение проблемРешение проблем

При возникновении проблем с политиками:

  1. Проверьте статус ресурсов. Ошибки валидации можно увидеть в поле .status.conditions описания объекта или в событиях Kubernetes.
  2. Убедитесь, что указано нужное пространство имен.
  3. Убедитесь, что targetRefs или selector указывают на нужные ресурсы.
  4. Если источников конфигурации несколько, убедитесь, что одинаковые поля в разных источниках имеют одинаковые значения.

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

Предыдущая
Установка Gwin
Следующая
Миграция приложений с ALB Ingress-контроллера на Gwin
Проект Яндекса
© 2025 ООО «Яндекс.Облако»