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

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

  • Процесс настройки групп бэкендов и целевых групп
  • Примеры использования Attachment
  • Привязка ресурса HTTPRoute к группе бэкендов
  • Привязка ресурса IngressBackendGroup к группе бэкендов
  • Привязка ресурса Service к целевой группе
  1. Инструменты Application Load Balancer
  2. Gwin
  3. Механизм Attachment для интеграции Gwin с Application Load Balancer

Механизм Attachment для интеграции Yandex Cloud Gwin с существующей инфраструктурой Yandex Application Load Balancer

Статья создана
Yandex Cloud
Обновлена 28 апреля 2026 г.
  • Процесс настройки групп бэкендов и целевых групп
  • Примеры использования Attachment
    • Привязка ресурса HTTPRoute к группе бэкендов
    • Привязка ресурса IngressBackendGroup к группе бэкендов
    • Привязка ресурса Service к целевой группе

Attachment — это механизм, при котором инфраструктура Application Load Balancer создается в Terraform, а Gwin связывает ее с ресурсами Kubernetes на основе аннотаций. В этом случае Gwin отвечает только за обновление ресурсов балансировщика, а за их создание и удаление — Terraform.

Такой подход позволяет решать следующие задачи:

  • Маршрутизация трафика с одного балансировщика:

    • в несколько кластеров Managed Service for Kubernetes;
    • в кластер Managed Service for Kubernetes и в другие сервисы.
  • Интеграция Gwin с существующей инфраструктурой Application Load Balancer.

  • Переход с маршрутизации через Application Load Balancer в Instance Groups на сервисы в Kubernetes без изменения балансировщика.

  • Конфигурация Gateway API через Terraform, а не через манифесты Kubernetes.

Процесс настройки групп бэкендов и целевых группПроцесс настройки групп бэкендов и целевых групп

При использовании Attachment настройка групп бэкендов и целевых групп выполняется одинаково. На примере целевой группы настройка выглядит следующим образом:

  1. Создайте целевую группу с помощью Terraform.

    В описании ресурса добавьте блок lifecycle с параметром ignore_changes = all, чтобы Terraform не перезаписывал изменения, внесенные Gwin.

  2. Добавьте в ресурс Service Kubernetes аннотацию gwin.yandex.cloud/attach.targetGroup.id с идентификатором целевой группы в Terraform.

При изменении ресурса Service Kubernetes контроллер Gwin обновляет ресурсы балансировщика следующим образом:

  1. Находит целевую группу по аннотации.

    Если целевая группа не найдена, возвращается сообщение об ошибке.

  2. Обновляет целевую группу:

    • добавляет метку gwin-attached: true;
    • изменяет конфигурацию целевой группы на основе сервиса в Kubernetes.

Если при обновлении ресурсов Gwin находит ресурс, у которого есть метка gwin-attached: true, но соответствующий сервис в Kubernetes не существует, возвращается предупреждение.

Важно

Если сервис привязан через Attachment, он не может быть указан в качестве бэкенда для других ресурсов (например, Ingress или HTTPRoute).

Примеры использования AttachmentПримеры использования Attachment

Привязка ресурса HTTPRoute к группе бэкендовПривязка ресурса HTTPRoute к группе бэкендов

Чтобы привязать ресурс HTTPRoute к группе бэкендов:

  1. В Terraform создайте группу бэкендов и целевую группу:

    Terraform
    resource "yandex_alb_backend_group" "demo-attach-httproute-bg-bg" {
      name      = "demo-attach-httproute-bg-bg"
      folder_id = <идентификатор_каталога>
    
      http_backend {
        name             = "placeholder-backend"
        target_group_ids = [yandex_alb_target_group.demo-attach-httproute-bg-placeholder-tg.id]
      }
    
      lifecycle {
        ignore_changes = all
      }
    }
    
    resource "yandex_alb_target_group" "demo-attach-httproute-bg-placeholder-tg" {
      name      = "demo-attach-httproute-bg-placeholder-tg"
      folder_id = <идентификатор_каталога>
    }
    
    
  2. В ресурс HTTPRoute добавьте аннотацию gwin.yandex.cloud/rule.demo-rule.attach.backendGroup.id:

    apiVersion: gateway.networking.k8s.io/v1
    kind: HTTPRoute
    metadata:
      name: demo-http-route
      namespace: demo-ns
      annotations:
        gwin.yandex.cloud/rule.demo-rule.attach.backendGroup.id: ${yandex_alb_backend_group.demo-attach-httproute-bg-bg.id}
      labels:
        app: demo-attachment
    spec:
      parentRefs:
        - group: gwin.yandex.cloud
          kind: Attach
          name: attach
      rules:
        - name: demo-rule
          backendRefs:
            - name: hello-world
              port: 80
              weight: 100
    

Привязка ресурса IngressBackendGroup к группе бэкендовПривязка ресурса IngressBackendGroup к группе бэкендов

Чтобы привязать ресурс IngressBackendGroup к группе бэкендов:

  1. В Terraform создайте группу бэкендов и целевую группу:

    Terraform
    resource "yandex_alb_backend_group" "demo-attach-ingbg-bg-bg" {
      name      = "demo-attach-ingbg-bg-bg"
      folder_id = <идентификатор_каталога>
    
      http_backend {
        name             = "placeholder-backend"
        target_group_ids = [yandex_alb_target_group.demo-attach-ingbg-bg-placeholder-tg.id]
      }
    
      lifecycle {
        ignore_changes = all
      }
    }
    
    resource "yandex_alb_target_group" "demo-attach-ingbg-bg-placeholder-tg" {
      name      = "demo-attach-ingbg-bg-placeholder-tg"
      folder_id = <идентификатор_каталога>
    }
    
  2. В ресурсе IngressBackendGroup в поле attach добавьте идентификатор группы бэкендов:

    apiVersion: gwin.yandex.cloud/v1
    kind: IngressBackendGroup
    metadata:
      name: demo-ingressbackendgroup
      namespace: demo-ns
    spec:
      type: HTTP
      attach:
        backendGroup:
          id: ${yandex_alb_backend_group.demo-attach-ingbg-bg-bg.id}
      backends:
        - name: demo-backend
          weight: 60
          backendRef:
            group: ""
            kind: Service
            name: hello-world
            port: 80
            weight: 100
    

Привязка ресурса Service к целевой группеПривязка ресурса Service к целевой группе

Чтобы привязать ресурс Service к целевой группе:

  1. В Terraform создайте группу бэкендов и целевую группу:

    Terraform
    resource "yandex_alb_backend_group" "demo-attach-service-tg-bg" {
      name      = "demo-attach-service-tg-bg"
      folder_id = <идентификатор_каталога>
    
      http_backend {
        name             = "demo-backend"
        port             = 30081
        target_group_ids = [yandex_alb_target_group.demo-attach-service-tg-tg.id]
    
        healthcheck {
          healthcheck_port    = 30501 // Порт, который использует Gwin для nodecheck
          healthy_threshold   = 3
          unhealthy_threshold = 1
          timeout             = "3s"
          interval            = "3s"
          http_healthcheck {
            path = "/nodecheck?service_namespace=<пространство_имен_ресурса_Service>&service_name=<имя_ресурса_Service>"
          }
        }
      }
    }
    
    resource "yandex_alb_target_group" "demo-attach-service-tg-tg" {
      name      = "demo-attach-service-tg-tg"
      folder_id = <идентификатор_каталога>
      
      lifecycle {
        ignore_changes = all
      }
    }
    
    
  2. В ресурс Service добавьте аннотацию gwin.yandex.cloud/attach.targetGroup.id:

    apiVersion: v1
    kind: Service
    metadata:
      name: demo-attach-service-tg-service
      namespace: demo-ns
      annotations:
        gwin.yandex.cloud/attach.targetGroup.id: ${yandex_alb_target_group.demo-attach-service-tg-tg.id}
    spec:
      selector:
        app: hello-world
      ports:
        - port: 80
          targetPort: 80
          nodePort: 30081
      type: NodePort
    

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

Предыдущая
Миграция приложений с Ingress NGINX на Gwin
Следующая
Gateway
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»