不同 Ingress 方式的比较

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

目录

针对 L4(TCP/UDP)流量

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

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