Comparison Among Different Ingress Method

The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem. This document compares them (Service, Ingress, Gateway API, and ALB Rule) to help users make the right choice.

For L4(TCP/UDP) Traffic

Services of type LoadBalancer, Gateway API, and ALB Rules can all expose L4 traffic externally. Here we recommend using the LoadBalancer type Service approach. Both Gateway API and ALB Rules are implemented by ALB, which is a userspace proxy, and their performance degrades significantly when handling L4 traffic compared to LoadBalancer type Services.

For L7(HTTP/HTTPS) Traffic

While Ingress, GatewayAPI, and ALB Rules can all expose L7 traffic externally, they differ in their capabilities and isolation models.

Ingress

Ingress is the standard specification adopted by the Kubernetes community and are recommended for default use. The Ingress is handled by ALB instances that are managed by the platform administrator.

GatewayAPI

GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress. By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules. Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.

ALB Rule

ALB Rule(Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules. However, the ALB Rule is more complex than Ingress and GatewayAPI and is not a community-standard API. Therefore, we recommend using it only when Ingress and GatewayAPI don’t meet your needs.