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.
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.
While Ingress, GatewayAPI, and ALB Rules can all expose L7 traffic externally, they differ in their capabilities and isolation models.
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 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(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.