Входящий трафик в Служба Azure Kubernetes (AKS)
Входящий трафик в AKS — это ресурс Kubernetes, который управляет внешним доступом к трафику http-типа к службам в кластере. Входящий трафик AKS может предоставлять такие службы, как балансировка нагрузки, завершение SSL и виртуальное размещение на основе имен. Дополнительные сведения о входящего трафика Kubernetes см. в документации по входящего трафика Kubernetes.
Контроллеры входящего трафика
При управлении трафиком приложения контроллеры входящего трафика обеспечивают расширенные возможности, выполняя работу на уровне 7. Они могут направлять HTTP-трафик в различные приложения на основе входящего URL-адреса, что позволяет использовать более интеллектуальные и гибкие правила распределения трафика. Например, контроллер входящего трафика может направлять трафик в разные микрослужбы в зависимости от пути URL-адреса, повышая эффективность и организацию служб.
С другой стороны, служба LoadBalancer типа При создании настраивает базовый ресурс подсистемы балансировки нагрузки Azure. Эта подсистема балансировки нагрузки работает на уровне 4, распределяя трафик к модулям pod в службе по указанному порту. Однако службы уровня 4 не знают о фактических приложениях и не могут реализовать эти типы сложных правил маршрутизации.
Понимание различий между этими двумя подходами помогает выбрать подходящее средство для управления трафиком.
Сравнение параметров входящего трафика
В следующей таблице перечислены различия функций между разными параметрами контроллера входящего трафика:
Функция | Надстройка маршрутизации приложений | Шлюз приложений для контейнеров | Сетка службы 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.
Azure Kubernetes Service