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 для Yandex Managed Service for Kubernetes

Статья создана
Yandex Cloud
Обновлена 10 ноября 2025 г.

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

Контроллер Gwin, установленный в кластер, автоматически разворачивает L7-балансировщики на основе конфигурации созданных вами ресурсов Kubernetes.

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

Поддерживаемые ресурсы Kubernetes:

  • Ingress — стандартный ресурс Kubernetes, возможности которого расширены с помощью аннотаций.
  • IngressPolicy — обеспечивает дополнительные возможности для всех ресурсов Application Load Balancer.
  • IngressBackendGroup — позволяет настраивать группы бэкендов.
  • ServicePolicy — позволяет настраивать целевые группы.
  • Service — содержит описание сервисов Kubernetes, используемых в качестве бэкендов.
  • Gateway — содержит правила приема входящего трафика и выбора маршрутов для этого трафика.
  • GatewayPolicy — обеспечивает дополнительные возможности для балансировщиков, роутеров и обработчиков.
  • HTTPRoute — содержит правила для маршрутизации HTTP- и HTTPS-трафика по бэкендам.
  • GRPCRoute — содержит правила для маршрутизации gRPC-трафика по бэкендам.
  • TLSRoute — содержит правила для маршрутизации TLS-трафика по бэкендам.
  • RoutePolicy — обеспечивает дополнительные возможности для виртуальных хостов и маршрутов.
  • YCStorageBucket — соответствует бакету Yandex Object Storage.
  • YCCertificate — соответствует сертификату Yandex Certificate Manager.

Схема работы контроллера Gwin:

Установить контроллер Gwin можно по инструкции.

Примеры конфигурацииПримеры конфигурации

Ниже приведены два примера конфигурации — с использованием ресурсов Gateway API и Ingress. В обоих случаях создается балансировщик Application Load Balancer, который:

  • автоматически получает динамический публичный IP-адрес;
  • принимает HTTP-трафик на порт 80;
  • принимает HTTPS-трафик на порт 443, используя сертификат Certificate Manager;
  • отправляет GET-запросы к тестовому сервису example-service.
Gateway API
Ingress
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: example-gateway
  namespace: example-ns
spec:
  gatewayClassName: gwin-default
  listeners:
    - name: http
      protocol: HTTP
      port: 80
      hostname: "example.com"
      allowedRoutes:
        namespaces:
          from: Same
    - name: https
      protocol: HTTPS
      port: 443
      hostname: "example.com"
      allowedRoutes:
        namespaces:
          from: Same
      tls:
        certificateRefs:
          - group: gwin.yandex.cloud
            kind: YCCertificate
            name: example-certificate
  addresses:
    - type: gwin.yandex.cloud/autoIPv4
      value: auto
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: example-redirect-httproute
  namespace: example-ns
spec:
  hostnames:
    - "example.com"
  parentRefs:
    - name: example-gateway
      sectionName: http
  rules:
    - filters:
        - type: RequestRedirect
          requestRedirect:
            scheme: https
            statusCode: 301
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: example-httproute
  namespace: example-ns
spec:
  hostnames:
    - "example.com"
  parentRefs:
    - name: example-gateway
      sectionName: https
  rules:
    - matches:
        - path:
            value: /api
            type: PathPrefix
          method: GET
      backendRefs:
        - kind: Service
          name: example-service
          port: 80
---
apiVersion: gwin.yandex.cloud/v1
kind: YCCertificate
metadata:
  name: example-certificate
  namespace: example-ns
spec:
  certificateRef:
    certificateID: "<идентификатор_сертификата>"
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  namespace: example-ns
  annotations:
    gwin.yandex.cloud/groupName: example
    gwin.yandex.cloud/externalIPv4Address: auto
    gwin.yandex.cloud/rules.allowedMethods: "GET"
spec:
  ingressClassName: gwin-default
  rules:
    - host: example.com
      http:
        paths:
          - pathType: Prefix
            path: "/api"
            backend:
              service:
                name: example-service
                port:
                  number: 80
  tls:
    - hosts:
        - example.com
      secretName: "yc-certmgr-cert-id-<идентификатор_сертификата>"

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

Предыдущая
Обзор
Следующая
Установка Gwin
Проект Яндекса
© 2025 ООО «Яндекс.Облако»