Сравнение различных методов Ingress

Платформа Alauda Container Platform поддерживает несколько спецификаций ingress-трафика в экосистеме Kubernetes.
В этом документе проводится их сравнение (Service, Ingress, Gateway API и ALB Rule), чтобы помочь пользователям сделать правильный выбор.

Содержание

Для L4 (TCP/UDP) трафика

Сервисы типа LoadBalancer, Gateway API и ALB Rules могут все обеспечивать внешний доступ к L4 трафику. Здесь мы рекомендуем использовать подход с сервисом типа LoadBalancer.
И Gateway API, и ALB Rules реализованы через ALB, который является прокси в пространстве пользователя, и их производительность значительно снижается при обработке L4 трафика по сравнению с сервисами типа LoadBalancer.

Для L7 (HTTP/HTTPS) трафика

Хотя Ingress, GatewayAPI и ALB Rules все могут обеспечивать внешний доступ к L7 трафику, они отличаются по возможностям и моделям изоляции.

Ingress

Ingress — это стандартная спецификация, принятая сообществом Kubernetes, и рекомендуется для использования по умолчанию.
Ingress обрабатывается экземплярами ALB, которыми управляет администратор платформы.

GatewayAPI

GatewayAPI предоставляет более гибкий режим изоляции, однако он менее зрелый, чем Ingress.
Используя GatewayAPI, разработчик может создавать собственные изолированные экземпляры ALB для обработки правил GatewayAPI.
Поэтому, если вам нужно делегировать создание и управление экземплярами ALB разработчикам, следует выбрать GatewayAPI.

ALB Rule

ALB Rule (Load Balancer в UI) предоставляет наиболее гибкие правила сопоставления трафика и максимальные возможности. Фактически, и Ingress, и GatewayAPI реализуются путем преобразования их в ALB Rules.
Однако ALB Rule сложнее, чем Ingress и GatewayAPI, и не является стандартным API сообщества. Поэтому мы рекомендуем использовать его только в тех случаях, когда Ingress и GatewayAPI не удовлетворяют вашим требованиям.