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


Входящий трафик в Служба Azure Kubernetes (AKS)

Входящий трафик в AKS — это ресурс Kubernetes, который управляет внешним доступом к трафику http-типа к службам в кластере. Входящий трафик AKS может предоставлять такие службы, как балансировка нагрузки, завершение SSL и виртуальное размещение на основе имен. Дополнительные сведения о входящего трафика Kubernetes см. в документации по входящего трафика Kubernetes.

Контроллеры входящего трафика

При управлении трафиком приложения контроллеры входящего трафика обеспечивают расширенные возможности, выполняя работу на уровне 7. Они могут направлять HTTP-трафик в различные приложения на основе входящего URL-адреса, что позволяет использовать более интеллектуальные и гибкие правила распределения трафика. Например, контроллер входящего трафика может направлять трафик в разные микрослужбы в зависимости от пути URL-адреса, повышая эффективность и организацию служб.

С другой стороны, служба LoadBalancer типа При создании настраивает базовый ресурс подсистемы балансировки нагрузки Azure. Эта подсистема балансировки нагрузки работает на уровне 4, распределяя трафик к модулям pod в службе по указанному порту. Однако службы уровня 4 не знают о фактических приложениях и не могут реализовать эти типы сложных правил маршрутизации.

Понимание различий между этими двумя подходами помогает выбрать подходящее средство для управления трафиком.

Схема, показывающая поток входящего трафика в кластере AKS

Сравнение параметров входящего трафика

В следующей таблице перечислены различия функций между разными параметрами контроллера входящего трафика:

Функция Надстройка маршрутизации приложений Шлюз приложений для контейнеров Сетка службы Azure или сетка службы на основе Istio
Контроллер входящего трафика или шлюза Контроллер входящего трафика NGINX Шлюз приложений Azure для контейнеров Шлюз входящего трафика Istio
API API входящего трафика API входящего трафика и API шлюза API входящего трафика Istio
Размещение В кластере Размещено в Azure В кластере
Масштабирование Автомасштабирование Автомасштабирование Автомасштабирование
Балансировка нагрузки Внутренний или внешний Внешняя. Внутренний или внешний
Завершение SSL В кластере Да: разгрузка и SSL E2E В кластере
mTLS Н/П Да для серверной части Н/П
Статический IP-адрес Н/П Полное доменное имя Н/П
Хранимые SSL-сертификаты Azure Key Vault Да Да Н/П
Интеграция Azure DNS для управления зонами DNS Да Да Н/П

В следующей таблице перечислены различные сценарии, в которых можно использовать каждый контроллер входящего трафика:

Параметр входящего трафика Когда использовать
Управляемый NGINX — надстройка маршрутизации приложений • Размещенные, настраиваемые и масштабируемые контроллеры входящего трафика NGINX в кластере.
• Основные возможности балансировки нагрузки и маршрутизации.
• Внутренняя и внешняя конфигурация подсистемы балансировки нагрузки.
• Конфигурация статических IP-адресов.
• Интеграция с Azure Key Vault для управления сертификатами.
• Интеграция с зонами Azure DNS для общедоступного и частного управления DNS.
• Поддерживает API входящего трафика.
Шлюз приложений для контейнеров • Размещенный шлюз входящего трафика Azure.
• Гибкие стратегии развертывания, управляемые контроллером или собственные Шлюз приложений для контейнеров.
• Расширенные функции управления трафиком, такие как автоматическая повторная попытка, устойчивость зоны доступности, взаимная проверка подлинности (mTLS) для целевого сервера, разделение трафика или взвешенная циклическая робина и автомасштабирование.
• Интеграция с Azure Key Vault для управления сертификатами.
• Интеграция с зонами Azure DNS для общедоступного и частного управления DNS.
• Поддерживает API-интерфейсы входящего трафика и шлюза.
Шлюз входящего трафика Istio • На основе Envoy при использовании с Istio для сетки служб.
• Расширенные функции управления трафиком, такие как ограничение скорости и нарушение цепи.
• Поддержка mTLS

Примечание.

API шлюза для трафика Istio ingress пока не поддерживается для надстройки Istio, но в настоящее время находится в активной разработке.

Создание ресурса входящего трафика

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

  • Простая настройка управляемых контроллеров Ingress NGINX на основе контроллера входящего трафика Kubernetes NGINX.

  • Интеграция с Azure DNS для управления общедоступными и частными зонами.

  • Завершение SSL с сертификатами, хранящимися в Azure Key Vault.

Дополнительные сведения о надстройке маршрутизации приложений см. в разделе "Управляемый входящий трафик NGINX" с надстройкой маршрутизации приложений.

Сохранение исходного IP-адреса клиента

Вы также можете настроить контроллер входящего трафика так, чтобы он сохранял исходный IP-адрес клиента в запросах к контейнерам в кластере AKS. Когда клиентский запрос направляется в контейнер в кластере AKS через входной контроллер, исходный IP-адрес этого запроса не будет доступен для целевого контейнера. При включении сохранения IP-адресов источника клиента исходный IP-адрес клиента доступен в заголовке запроса в разделе X-Forwarded-For.

Если вы используете сохранение IP-адресов источника клиента на контроллере входящего трафика, вы не сможете использовать сквозной TLS-трафик. IP-адрес источника клиента и сквозной трафик TLS можно использовать с другими службами, такими как типLoadBalancer (балансировщика нагрузки).

Дополнительные сведения о сохранении IP-адресов источника клиента см. в статье о том, как работает сохранение исходного IP-адреса клиента для служб LoadBalancer в AKS.