Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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.