Что такое Шлюз приложений для контейнеров?
Шлюз приложений для контейнеров — это подсистема балансировки нагрузки уровня приложений (уровень 7) и динамический продукт управления трафиком для рабочих нагрузок, работающих в кластере Kubernetes. Он расширяет портфель балансировки нагрузки приложений Azure и является новым предложением в рамках семейства продуктов Шлюз приложений.
Шлюз приложений для контейнеров — это эволюция Шлюз приложений контроллера входящего трафика (AGIC), приложение Kubernetes, которое позволяет клиентам Служба Azure Kubernetes (AKS) использовать собственный Шлюз приложений подсистемы балансировки нагрузки приложения Azure.. В текущей форме AGIC отслеживает подмножество ресурсов Kubernetes для изменений и применяет их к Шлюз приложений, используя Azure Resource Manager (ARM).
Как это работает?
Шлюз приложений для контейнеров состоит из трех компонентов:
- Шлюз приложений для ресурса контейнеров
- Интерфейсные компоненты
- Сопоставления
Следующие зависимости также ссылаются на Шлюз приложений развертывания контейнеров:
- Частный IP-адрес
- Делегирование подсети
- Управляемое удостоверение, назначаемое пользователем
Архитектура Шлюз приложений для контейнеров представлена на следующем рисунке:
Дополнительные сведения о том, как Шлюз приложений для контейнеров принимает входящие запросы и направляет их в серверный целевой объект, см. в Шлюз приложений для компонентов контейнеров.
Возможности и преимущества
Шлюз приложений для контейнеров предлагает некоторые совершенно новые функции в выпуске, такие как:
- Разделение трафика / взвешенными круглыми переборами
- Взаимная проверка подлинности для целевого объекта серверной части
- Поддержка Kubernetes для API входящего трафика и шлюза
- Гибкие стратегии развертывания
- Повышенная производительность, предлагающая практически обновления в режиме реального времени для добавления или перемещения модулей pod, маршрутов и проб
Шлюз приложений для контейнеров предоставляет эластичные и масштабируемые входящий трафик в кластеры AKS и включает новый уровень данных, а также плоскость управления с новым набором API ARM, отличных от существующих Шлюз приложений. Эти API отличаются от текущей реализации Шлюз приложений. Шлюз приложений для контейнеров находится за пределами плоскости данных кластера AKS и отвечает за входящий трафик. Служба управляется компонентом контроллера ALB, который выполняется внутри кластера AKS и соответствует API шлюза Kubernetes.
Функции балансировки нагрузки
Шлюз приложений для контейнеров поддерживает следующие функции управления трафиком:
- Автоматические повторные попытки
- Автомасштабирование
- Устойчивость зоны доступности
- Пользовательские и стандартные пробы работоспособности
- Поддержка сертификатов ECDSA и RSA
- gRPC;
- Перезапись заголовков
- 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.