Облачная платформаAdvanced

Сравнение функций между Envoy Gateway и NGINX Ingress

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В CCE кластерах Envoy Gateway (с Envoy в качестве data plane) и NGINX Ingress оба используются для внешней маршрутизации трафика и балансировки нагрузки. В этом разделе сравниваются Envoy Gateway и NGINX Ingress, чтобы помочь вам выбрать подходящее решение и спланировать миграцию.

Маршрутизация трафика

Базовая маршрутизация

NGINX Ingress (через Annotations)

Envoy Gateway (через Gateway API)

Различия

Маршрутизация по хосту

Поддерживается

Envoy Gateway использует HTTPRoute hostnames для реализации этой функции.

Маршрутизация пути (prefix/exact)

Поддерживается

Envoy Gateway использует HTTPRoute rules.matches.path для реализации этой функции.

Настройка HTTPS‑сертификатов

Поддерживается

Envoy Gateway использует Gateway listeners.tls для ссылки на секрет и реализации этой функции.

Перенаправление HTTP на HTTPS

Поддерживается

Envoy Gateway использует фильтр HTTPRoute RequestRedirect для реализации этой функции.

Перенаправление на несколько бэкендов

Поддерживается

Envoy Gateway использует HTTPRoute backendRefs для поддержки нескольких бэкендов.

Многопортовое прослушивание

Поддерживается

Envoy Gateway использует Gateway listeners для реализации этой функции.

Настройка HTTPS‑бэкенд‑служб

Поддерживается

Envoy Gateway использует расширенный ресурс BackendTLSPolicy для реализации этой функции.

Настройка gRPC‑бэкенд‑служб

Поддерживается

Эта функция реализована с использованием GRPCRoute. Подробности см. https://gateway.envoyproxy.io/latest/tasks/traffic/grpc-routing/.

Модификация запросов/ответов

NGINX Ingress (через Annotations)

Envoy Gateway (через Gateway API)

Различия

Перезапись пути

Поддерживается

Envoy Gateway использует фильтр HTTPRoute URLRewrite для реализации этой функции.

Перенаправление

Поддерживается

Envoy Gateway использует фильтр HTTPRoute RequestRedirect для реализации этой функции.

Модификация заголовков запроса

Поддерживается

Envoy Gateway использует фильтр HTTPRoute RequestHeaderModifier для реализации этой функции.

Модификация заголовков ответа

Поддерживается

Envoy Gateway использует фильтр HTTPRoute ResponseHeaderModifier для реализации этой функции.

Вставка пользовательского фрагмента Nginx

Не поддерживается

Не поддерживается Envoy Gateway из коробки. Используйте EnvoyPatchPolicy для изменения базовой конфигурации Envoy.

Политики Upstream

NGINX Ingress (через Annotations)

Envoy Gateway (через Gateway API)

Различия

Timeout

Поддерживается

Envoy Gateway использует ресурсы HTTPRoute timeouts или BackendTrafficPolicy.

Реализация отличается от NGINX: Envoy Gateway предоставляет более детализированный механизм тайм‑аутов с различными полями конфигурации.

Retry

Поддерживается

Envoy Gateway использует ресурсы BackendTrafficPolicy со следующими полями:

  • retry.numRetries: максимальное количество разрешённых повторных попыток.
  • retry.retryOn: условия, при которых инициируются повторные попытки.
  • retry.perRetry.timeout: тайм‑аут отдельной попытки повторного запроса.

Алгоритмы балансировки нагрузки (например RR и least_request)

Поддерживается

Envoy Gateway использует BackendTrafficPolicy loadBalancer.type со следующими параметрами:

  • LeastRequest: По умолчанию случайным образом выбираются два инстанса, и запрос перенаправляется к тому, у которого меньше активных запросов.
  • ConsistentHash: согласованное хеширование.
  • Random: случайное распределение.
  • RoundRobin: последовательный опрос.

Пул соединений и circuit breaker

Поддерживается

Envoy Gateway использует BackendTrafficPolicy circuitBreaker со следующими полями:

  • circuitBreaker.maxConnections: maximum number of TCP connections между Envoy и восходящей службой.
  • circuitBreaker.maxParallelRequests: максимальное количество одновременных запросов между Envoy и восходящим сервисом. Когда достигается этот порог, новые запросы отклоняются.

Sticky session (cookie stickiness)

Поддерживается

Envoy Gateway использует согласованное хеширование для балансировки нагрузки в сочетании с расширением StatefulSession для реализации этой функции.

Grayscale Release and Traffic Control

NGINX Ingress (Via Annotations)

Envoy Gateway (Via Gateway API)

Различие

Распределение трафика по весу

Поддерживается

Envoy Gateway использует HTTPRoute backendRefs.weight для реализации этой функции.

Распределение трафика по заголовку/запросу

Поддерживается

Envoy Gateway поддерживает как заголовки, так и параметры запроса в HTTPRoute matches.

Распределение трафика по cookie

Поддерживается

Envoy Gateway использует HTTPRoute matches (соответствие заголовку cookie) для реализации этой функции.

Отражение трафика

Поддерживается

Envoy Gateway использует фильтр HTTPRoute RequestMirror для реализации этой функции.

Доступ из разных источников

Поддерживается

CORS можно настроить с помощью SecurityPolicy. Подробности см. https://gateway.envoyproxy.io/latest/tasks/security/cors/.

Безопасность

Конфигурация шифрования TLS

NGINX Ingress (Via Annotations)

Envoy Gateway (Via Gateway API)

Различия

Версия TLS/набор шифров

Поддерживается

Envoy Gateway использует ресурсы ClientTrafficPolicy для тонкой настройки TLS.

Аутентификация

NGINX Ingress (через аннотации)

Envoy Gateway (через Gateway API)

Различия

Базовая аутентификация

Поддерживается

Envoy Gateway использует SecurityPolicy basicAuth для реализации этой функции.

Внешняя аутентификация (OAuth2/OIDC/SSO)

Поддерживается

Envoy Gateway использует SecurityPolicy oidc для реализации этой функции.

RBAC на основе пути/метода

Поддерживается

Envoy Gateway использует SecurityPolicy authorization для реализации этой функции.

Ограничение скорости и защита

NGINX Ingress (Через аннотации)

Envoy Gateway (Через Gateway API)

Различия

Ограничение скорости (по IP, заголовку или ключу)

Поддерживается

Envoy Gateway поддерживает как глобальное, так и локальное ограничение скорости через BackendTrafficPolicy.

Максимальное количество соединений или одновременных соединений

Частично поддерживается

Envoy Gateway использует ресурсы ClientTrafficPolicy и BackendTrafficPolicy для реализации этой функции.

Белый или чёрный список IP

Поддерживается

Envoy Gateway использует SecurityPolicy authorization для реализации этой функции.