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

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

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

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

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

  • Шлюз приложений для ресурса контейнеров
  • Интерфейсные компоненты
  • Сопоставления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реализация API входящего трафика

Контроллер ALB реализует поддержку входящего трафика.

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

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

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

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

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

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

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

Сведения о новых возможностях Шлюз приложений для контейнеров см. в обновлениях Azure.

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