Service、Ingress、Gateway API 与 ALB Rule 之间的比较

Alauda Container Platform 支持 Kubernetes 生态系统中的多种入口流量规范。
本文档对它们(ServiceIngressGateway APIALB Rule)进行比较,帮助用户做出正确选择。

针对 L4(TCP/UDP)流量

LoadBalancer 类型的 Service、Gateway API 和 ALB Rule 都可以将 L4 流量暴露到外部。这里推荐使用 LoadBalancer 类型的 Service 方式。
Gateway API 和 ALB Rule 都是由 ALB 实现的,ALB 是一个用户空间代理,与 LoadBalancer 类型的 Service 相比,在处理 L4 流量时性能会显著下降。

针对 L7(HTTP/HTTPS)流量

Ingress、GatewayAPI 和 ALB Rule 都可以将 L7 流量暴露到外部,但它们在能力和隔离模型上有所不同。

Ingress

Ingress 是 Kubernetes 社区采用的标准规范,推荐默认使用。
Ingress 由平台管理员管理的 ALB 实例处理。

GatewayAPI

GatewayAPI 提供了更灵活的隔离模式,但其成熟度不及 Ingress。
通过使用 GatewayAPI,开发人员可以创建自己隔离的 ALB 实例来处理 GatewayAPI 规则。
因此,如果需要将 ALB 实例的创建和管理权限委托给开发人员,则需要选择使用 GatewayAPI。

ALB Rule

ALB Rule(UI 中的 Load Balancer)提供了最灵活的流量匹配规则和最多的功能。实际上,Ingress 和 GatewayAPI 都是通过转换为 ALB Rule 来实现的。
然而,ALB Rule 比 Ingress 和 GatewayAPI 更复杂,且不是社区标准的 API。因此,建议仅在 Ingress 和 GatewayAPI 无法满足需求时使用。