Поделиться через


Что такое Шлюз приложений для контейнеров?

Шлюз приложений для контейнеров — это подсистема балансировки нагрузки уровня приложений (уровень 7) и динамический продукт управления трафиком для рабочих нагрузок, работающих в кластере Kubernetes. Он расширяет портфель балансировки нагрузки приложений Azure и является новым предложением в рамках семейства продуктов Шлюз приложений.

Шлюз приложений для контейнеров — это эволюция контроллера входящего трафика для шлюза приложений (AGIC),приложения Kubernetes, которое позволяет клиентам службы Azure Kubernetes Service (AKS) использовать родной шлюз приложений Azure для балансировки нагрузки. В текущей форме AGIC отслеживает изменения в подмножестве ресурсов Kubernetes и применяет их к Application Gateway, используя Azure Resource Manager (ARM).

Как это работает?

Шлюз приложений для контейнеров состоит из трех компонентов:

  • Шлюз приложений для контейнерных ресурсов
  • Фронтенды
  • Ассоциации

Упоминание следующих зависимостей также имеют место в Шлюзе приложений для контейнеров.

  • Частный IP-адрес
  • Делегирование подсети
  • Управляемое удостоверение, назначаемое пользователем

Архитектура Шлюз приложений для контейнеров представлена на следующем рисунке:

Схема, показывающая, как трафик из Интернета проходит через Шлюз приложений для контейнеров и направляется в серверные модули в AKS.

Дополнительные сведения о том, как Шлюз приложений для контейнеров принимает входящие запросы и направляет их в серверный целевой объект, см. в компонентах шлюза приложений для контейнеров.

Возможности и преимущества

Шлюз приложений для контейнеров предлагает совершенно новые функции при выпуске, такие как:

  • Разделение трафика / взвешенное чередование по кругу
  • Взаимная аутентификация с серверной системой назначения
  • Поддержка Kubernetes для Ingress и Gateway API
  • Гибкие стратегии развертывания
  • Повышенная производительность, обеспечивающая обновления в почти реальном времени для добавления или удаления POD, маршрутов и проб.

Шлюз приложений для контейнеров предоставляет эластичный и масштабируемый входной трафик для кластеров AKS и включает новый уровень обработки данных, а также управляющую плоскость с новым набором API ARM, отличающимся от существующего шлюза приложений. Эти API отличаются от текущей реализации Шлюз приложений. Шлюз приложений для контейнеров находится за пределами плоскости данных кластера AKS и отвечает за входящий трафик. Служба управляется компонентом контроллера ALB, который выполняется внутри кластера AKS и соответствует API шлюза Kubernetes.

Функции балансировки нагрузки

Шлюз приложений для контейнеров поддерживает следующие функции управления трафиком:

  • Автоматические повторные попытки
  • Автомасштабирование
  • Устойчивость зоны доступности
  • Пользовательские и стандартные проверки состояния
  • Поддержка сертификатов ECDSA и RSA
  • gRPC
  • Перезапись заголовков
  • HTTP/2
  • Управление трафиком HTTPS:
    • Завершение SSL-запросов
    • Сквозное шифрование SSL
  • Поддержка API Ingress и Gateway
  • Переадресация запросов HTTP/HTTPS уровня 7 на основе префикса или точного соответствия:
    • Hostname (Имя узла)
    • Путь
    • Заголовок
    • Строка запроса
    • Методы
    • Порты (80/443)
  • Взаимная проверка подлинности (mTLS) для внешнего интерфейса, серверной части или сквозного соединения
  • Поддержка событий, отправляемых сервером (SSE)
  • Разделение трафика / взвешенный round robin
  • Политики TLS
  • Перенаправление URL-адреса
  • Переопределение URL-адресов
  • Брандмауэр веб-приложений (WAF) (пилотная версия)
  • Поддержка WebSocket

Стратегии развертывания

Существует две стратегии развертывания для управления Шлюзом приложений для контейнеров:

  • Собственное развертывание (BYO): в этой стратегии развертывания развертывание и жизненный цикл ресурса Шлюза приложений для контейнеров, ресурса ассоциации и ресурса внешнего интерфейса осуществляются через портал Azure, CLI, PowerShell, Terraform и т. д. и указываются в конфигурации в Kubernetes.
    • В API Gateway: Каждый раз, когда вы хотите создать новый ресурс шлюза в Kubernetes, ресурс интерфейса должен быть заранее подготовлен в Azure и должен ссылаться на ресурс шлюза. Ответственность за удаление ресурса Frontend лежит на администраторе Azure, и он не удаляется автоматически при удалении ресурса шлюза в Kubernetes.
  • Управляемый контроллером ALB: В этой стратегии развертывания контроллер ALB, развернутый в Kubernetes, отвечает за жизненный цикл Шлюза приложений для контейнеров и связанных ресурсов. Контроллер балансировки нагрузки приложений (ALB) создает ресурс шлюза приложений для контейнеров, когда в кластере определяется пользовательский ресурс ApplicationLoadBalancer. Его жизненный цикл зависит от жизненного цикла этого пользовательского ресурса.
    • В API шлюза. Каждый раз при создании ресурса шлюза, ссылающегося на ресурс ApplicationLoadBalancer, контроллер ALB подготавливает новый Frontend-ресурс и управляет его жизненным циклом в зависимости от жизненного цикла ресурса шлюза.

Поддерживаемые регионы

в настоящее время Шлюз приложений для контейнеров предлагается в следующих регионах:

  • Восточная Австралия
  • Бразилия (Юг)
  • Центральная Канада
  • Центральная Индия
  • Центральная часть США
  • Восточная Азия
  • Восточная часть США
  • Восток США2
  • Центральная Франция
  • Центрально-Западная Германия
  • Республика Корея, центральный регион
  • Центрально-северная часть США
  • Северная Европа
  • Восточная Норвегия;
  • Центрально-южная часть США
  • Юго-Восточная Азия
  • Северная Швейцария
  • Северная часть ОАЭ;
  • южная часть Соединенного Королевства
  • западная часть США
  • Западная часть США 2
  • Западная часть США 3
  • Западная Европа

Реализация API шлюза

Контроллер ALB реализует версию v1 API Gateway.

Ресурс API шлюза Поддержка Комментарии
GatewayClass Да
Шлюз Да Поддержка протокола HTTP и HTTPS в прослушивателе. Для прослушивателя разрешены только порты: 80 и 443.
HTTPRoute Да
ReferenceGrant Да В настоящее время поддерживает версию v1alpha1 этого API

Реализация API Ingress

Контроллер ALB реализует поддержку Ingress.

Ресурс API входного соединения Поддержка Комментарии
Вход Да Поддержка протокола HTTP и HTTPS в прослушивателе.

Сообщите о проблемах и оставить отзыв

Для обратной связи опубликуйте новую идею на feedback.azure.com. Для решения проблем подайте запрос на поддержку через портал Azure в вашем ресурсе Шлюз приложений для контейнеров.

Цены и соглашение об уровне обслуживания

Для получения информации о ценах на Шлюз приложений для контейнеров см. цены на Шлюз приложений.

Для получения сведений о соглашении об уровне обслуживания для Шлюза приложений для контейнеров, см. Соглашения об уровне обслуживания (SLA) для онлайн-сервисов.

Новые возможности

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

Следующие шаги