Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ingress в AKS — это ресурс Kubernetes, управляющий внешним доступом HTTP-подобного трафика к службам в кластере. Механизм входящего трафика AKS может предоставлять такие услуги, как балансировка нагрузки, SSL терминализация и виртуальное размещение с использованием имен. Дополнительные сведения о Kubernetes Ingress см. в документации по Kubernetes Ingress.
Ингресс-контроллеры
При управлении трафиком приложения инфраструктурные контроллеры предоставляют расширенные возможности, осуществляя операцию на уровне 7. Они могут направлять HTTP-трафик в различные приложения на основе входящего URL-адреса, что позволяет использовать более интеллектуальные и гибкие правила распределения трафика. Например, контроллер входящего трафика может направлять трафик в разные микрослужбы в зависимости от пути URL-адреса, повышая эффективность и организацию служб.
С другой стороны, служба типа LoadBalancer при создании настраивает базовый ресурс балансировки нагрузки Azure. Этот балансировщик нагрузки работает на уровне 4, распределяя трафик к pod'ам в вашей службе по указанному порту. Однако службы уровня 4 не знают о фактических приложениях и не могут реализовать эти типы сложных правил маршрутизации.
Понимание различий между этими двумя подходами помогает выбрать подходящее средство для управления трафиком.
Сравнение вариантов входа
В следующей таблице перечислены различия функций между разными параметрами контроллера входящего трафика:
Функция | Надстройка маршрутизации приложений | Шлюз приложений для контейнеров | Сетка службы Azure или сетка службы на основе Istio |
---|---|---|---|
Контроллер входящего трафика или шлюза | Контроллер входящего трафика NGINX | Шлюз приложений Azure для контейнеров | Шлюз Istio Ingress |
API | Ingress API | API входа и API шлюза | API Istio Ingress |
Услуги размещения | В кластере | Размещено в Azure | В кластере |
Масштабирование | Автомасштабирование | Автомасштабирование | Автомасштабирование |
Балансировка нагрузки | Внутренний или внешний | Внешнее | Внутренний или внешний |
Завершение SSL | В кластере | Да: разгрузка и сквозное шифрование SSL | В кластере |
mTLS | Не применимо | Да: интерфейсная и серверная часть | Не применимо |
Статический IP-адрес | Не применимо | Полное доменное имя (FQDN) | Не применимо |
Хранимые SSL-сертификаты Azure Key Vault | Да | Да | Не применимо |
Интеграция Azure DNS для управления зонами DNS | Да | Да | Не применимо |
В следующей таблице перечислены различные сценарии, в которых можно использовать каждый контроллер входящего трафика:
Вариант входа | Когда следует использовать |
---|---|
Управляемый NGINX — надстройка маршрутизации приложений | • Размещенные в кластере, настраиваемые и масштабируемые контроллеры входа NGINX.
• Основные возможности балансировки нагрузки и маршрутизации. • Внутренняя и внешняя конфигурация подсистемы балансировки нагрузки. • Конфигурация статических IP-адресов. • Интеграция с Azure Key Vault для управления сертификатами. • Интеграция с зонами Azure DNS для общедоступного и частного управления DNS. • Поддерживает Ingress API. |
Шлюз приложений для контейнеров | • Шлюз для входящего трафика, размещенный на Azure.
• Гибкие стратегии развертывания, управляемые контроллером или принести собственный шлюз приложений для контейнеров. • Расширенные функции управления трафиком, такие как автоматическая повторная попытка, защита в зоне доступности, взаимная проверка подлинности (mTLS) на целевой сервер, разделение трафика или взвешенная очередность, и функции автомасштабирования. • Интеграция с Azure Key Vault для управления сертификатами. • Интеграция с зонами Azure DNS для общедоступного и частного управления DNS. • Поддерживает API Ingress и Gateway. |
Шлюз входящего трафика Istio | • На основе Envoy при использовании с Istio для сервисной сети.
• Расширенные функции управления трафиком, такие как ограничение скорости и нарушение цепи. • Поддержка mTLS |
Замечание
API шлюза для трафика Istio ingress ещё не поддерживается как дополнение для Istio, но в настоящее время активно разрабатывается.
Создать ресурс Ingress
Модуль маршрутизации приложений — это рекомендуемый способ настройки контроллера Ingress в AKS. Дополнение для маршрутизации приложений — это полностью управляемый ингресс-контроллер для службы Azure Kubernetes (AKS), предоставляющий следующие функции:
Простая настройка управляемых контроллеров NGINX Ingress, основанных на Kubernetes NGINX Ingress Controller.
Интеграция с 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