Gateway API 与 Kubernetes Ingress 在设计理念上有什么本质区别?
1. 角色模型
- Ingress 缺乏明确的角色划分,应用团队常在自身对象上写满实现特定的注解;Gateway API 以基础设施提供商、集群操作员、应用开发者三层角色明确划分职责,平台与应用各司其职。
2. 资源结构与可扩展性
- Ingress 是单一、单体资源,扩展能力依赖各控制器自定义的注解,互不兼容;Gateway API 采用 GatewayClass、Gateway、Route 等多资源组合,并通过 Policy Attachment 标准化扩展点,扩展能力与核心能力同样可移植。
3. 协议与表达能力
- Ingress 仅原生支持 HTTP/HTTPS,复杂路由(流量分割、镜像、头改写)需靠注解实现;Gateway API 原生支持多协议,并以类型化字段提供丰富七层路由能力,相同配置在不同实现间行为一致。