Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контроллер входящего трафика шлюза приложений (AGIC) — это приложение Kubernetes, позволяющее Azure Kubernetes Service (AKS) кластерам использовать собственный шлюз Azure Application Gateway L7 load balancer для предоставления рабочих нагрузок в Интернете. AGIC отслеживает кластер Kubernetes, в котором он размещен, и постоянно обновляет шлюз приложений, чтобы выбранные службы предоставлялись в Интернете.
Контроллер Ingress работает в собственном поде в вашем кластере AKS. AGIC отслеживает подмножество ресурсов Kubernetes на предмет изменений. Состояние кластера AKS переводится в конфигурацию, специфичную для шлюза приложений Azure, и применяется к Azure Resource Manager (ARM).
В этой статье вы узнаете о преимуществах AGIC, вариантах развертывания (надстройке Helm и AKS) и поддерживаемых конфигурациях сети контейнеров.
Совет
Рассмотрите Application Gateway for Containers в качестве решения для Kubernetes Ingress. Дополнительные сведения см. в разделе Краткое руководство: развертывание Шлюза приложений для контроллера контейнеров ALB.
Преимущества Ingress Controller для шлюза приложений
AGIC помогает устранить необходимость в другой подсистеме балансировки нагрузки или общедоступном IP-адресе перед кластером AKS. Он избегает нескольких переходов в схеме передачи данных, прежде чем запросы достигают кластера AKS. Шлюз приложений взаимодействует с подами, используя их частный IP-адрес напрямую и не требует служб NodePort или KubeProxy. Эта возможность также обеспечивает более высокую производительность развертываний.
Контроллер входящего трафика поддерживается исключительно артикулами Standard_v2 и WAF_v2, которые также предоставляют преимущества автомасштабирования. Шлюз приложений может реагировать на увеличение или уменьшение объема трафика и соответствующим образом изменять масштаб, не используя ресурсы из кластера AKS.
Использование шлюза приложений в дополнение к AGIC также помогает защитить кластер AKS, предоставляя политику TLS и функциональные возможности Web Application Firewall (WAF).
AGIC настраивается с помощью ресурса входящего трафика Kubernetes, а также служб и модулей Pod. Используя встроенный балансировщик нагрузки уровня L7 Azure Application Gateway, AGIC предоставляет следующие функции:
- Маршрутизация URL-адресов
- Сходство на основе файлов cookie
- завершение сеанса TLS;
- Сквозное шифрование TLS
- Поддержка общедоступных, частных и гибридных веб-сайтов
- Интегрированный брандмауэр веб-приложения
Предупреждение
По умолчанию AGIC предполагает полное владение шлюзом приложений, с которым он связан. AGIC перезаписывает все существующие конфигурации шлюза приложений, которые не определены в ресурсах Ingress Kubernetes. Все прослушиватели, серверные пулы, правила или другие параметры, ранее настроенные на шлюзе приложений, удаляются или заменяются при включении AGIC. Прежде чем включить AGIC в существующем шлюзе приложений, создайте резервную копию конфигурации шлюза приложений, экспортируя шаблон с портала Azure. Дополнительные сведения см. в разделе "Резервное копирование развертывания Шлюза приложений".
Если вам необходимо, чтобы AGIC сосуществовал с существующими конфигурациями шлюза приложений, см. раздел "Настройка развертывания общего шлюза приложений" (только Helm).
Разница между развертыванием Helm и надстройкой AKS
Вы можете развернуть AGIC для кластера AKS с помощью Helm или AKS как дополнения. Основное преимущество использования AGIC в качестве надстройки AKS заключается в том, что это проще, чем встраивание через Helm. Для новой установки вы можете развернуть новый шлюз приложений и кластер AKS с включенной AGIC в качестве дополнения, выполнив одну команду в Azure CLI. Надстройка также является полностью управляемой службой, что предоставляет дополнительные преимущества, такие как автоматическое обновление и расширенная поддержка. Оба способа развертывания AGIC (с помощью Helm и надстройки AKS) полностью поддерживаются корпорацией Майкрософт. Кроме того, дополнение позволяет улучшить интеграцию с AKS, как высоко интегрированное дополнение.
Хотя вы развертываете надстройку AGIC в качестве модуля pod в кластере AKS, некоторые различия существуют между версией развертывания Helm и версией надстройки AGIC. В следующем списке рассматриваются различия.
- Вы не можете изменить параметры развертывания Helm в дополнении AKS.
-
verbosityLevelустанавливается на 5 по умолчанию -
usePrivateIpизначально установлено значение false; измените этот параметр, используя аннотацию use-private-ip -
sharedне поддерживается в надстройке -
reconcilePeriodSecondsне поддерживается в надстройке -
armAuth.typeне поддерживается в надстройке
-
- AGIC, развернутая через Helm, поддерживает ProhibitedTargets, что означает, что AGIC может настроить шлюз приложений специально для кластеров AKS, не затрагивая другие существующие бэкэнды. Надстройка AGIC в настоящее время не поддерживает эту функцию.
- Так как надстройка AGIC является управляемой службой, вы автоматически получаете обновления до последней версии надстройки AGIC. В отличие от этого, при развертывании AGIC через Helm необходимо вручную обновить AGIC.
Примечание.
Вы можете развернуть только одну надстройку AGIC для каждого кластера AKS, и каждая надстройка AGIC в настоящее время может нацелиться только на один шлюз приложений. Для развертываний, требующих более одного AGIC на кластер или нескольких AGIC, нацеленных на один Application Gateway, используйте AGIC, развернутые с помощью Helm.
Helm и AGIC не поддерживают службу ExternalName.
Сеть контейнеров и AGIC
Контроллер входящего трафика шлюза приложений поддерживает следующие сетевые предложения AKS:
- Kubenet
- CNI
- Наложение CNI
Azure CNI и Azure CNI Overlay являются двумя рекомендуемыми вариантами для контроллера интеграции шлюза приложений. При выборе сетевой модели рассмотрите варианты использования для каждого подключаемого модуля CNI и тип используемой сетевой модели:
| Подключаемый модуль CNI | Сетевая модель | Основные моменты вариантов использования |
|---|---|---|
| Azure CNI Overlay | Оверлей | — Лучше всего подходит для сохранения IP-адресов виртуальной сети. — максимальное количество узлов, поддерживаемое API-сервером, + 250 модулей Pod на каждый узел — упрощенная конфигурация -Нет доступа напрямую к IP-адресу внешнего узла pod. |
| Подсеть подов CNI Azure | Плоский | — прямой доступ к pod из внешней среды — режимы эффективного использования IP-адресов виртуальной сети или поддержки масштабирования большого кластера |
| Подсеть узла Azure CNI | Плоский | — прямой доступ к pod из внешней среды — упрощенная конфигурация — ограниченное масштабирование — неэффективное использование IP-адресов виртуальной сети |
При подготовке шлюза приложений для контейнеров в кластер с включенным наложением CNI или включенным CNI, шлюз приложений для контейнеров автоматически обнаруживает предназначенную конфигурацию сети. Вам не нужно изменять конфигурацию Gateway или Ingress API, чтобы указать CNI Overlay или CNI.
При использовании Azure CNI Overlay рассмотрите следующие ограничения:
- Контроллер AGIC: необходимо запустить версию 1.9.1 или более позднюю, чтобы использовать наложение CNI.
- Размер подсети: подсеть шлюза приложений должна быть максимальной префиксом /24; поддерживается только одно развертывание для каждой подсети.
- Делегирование подсети: подсеть шлюза приложений должна иметь делегирование подсети для Microsoft.Network/applicationGateways.
- Пиринг между региональными виртуальными сетями: невозможно развернуть шлюз приложений в одной сети и узлах кластера AKS в виртуальной сети в том же регионе.
- Пиринг глобальных виртуальных сетей: невозможно развернуть шлюз приложений в виртуальной сети в одном регионе и узлы кластера AKS в виртуальной сети в другом регионе.
- Azure CNI Overlay с контроллером входящего трафика шлюз приложений не поддерживается в облаке Azure Government или в Microsoft Azure, управляемых компанией 21Vianet (Azure в Китае).
Примечание.
Контроллер входящего трафика шлюза приложений автоматически обнаруживает обновление кластера AKS из Kubenet или CNI на наложение CNI. Запланируйте обновление на период обслуживания, так как может возникнуть нарушение трафика. Для обнаружения и настройки поддержки CNI Overlay контроллер может потратить несколько минут после обновления кластера.
Предупреждение
Перед обновлением убедитесь, что подсеть шлюза приложений является подсетью /24 или меньшей. Обновление с CNI до CNI Overlay с более крупной подсетью (например, /23) приводит к сбою и требует от вас повторного создания подсети шлюза приложений с поддерживаемым размером.
Следующие шаги
- Установка надстройки AGIC в новой инфраструктуре для AKS: Инструкции по установке надстройки AGIC, AKS и шлюза приложений на чистую инфраструктуру.
- Развертывание дополнения AGIC для существующего развертывания AKS: установка дополнения AGIC в кластере AKS с существующим шлюзом приложений.
- Развертывание через Helm "с нуля": установка AGIC с помощью Helm, нового кластера AKS и нового шлюза приложений в инфраструктуре с нуля.
- Brownfield развертывание с помощью Helm: Развертывание AGIC с помощью Helm на существующем кластере AKS и шлюзе приложений.