1. Gateway API 与 Envoy Gateway 的关系说明
在开始部署之前,我们需要先理解几个关键概念,因为这确实容易让人混淆:
1.1 什么是 Kubernetes Gateway API
Kubernetes Gateway API 是 Kubernetes 社区推出的新一代入口流量管理标准,它是一组 CRD(Custom Resource Definitions) 资源定义,用于替代传统的 Ingress API。Gateway API 由 Kubernetes SIG-NETWORK 社区维护,是 Kubernetes 的官方项目。
Gateway API 的主要特点:
- 角色导向设计: 分离了基础设施管理员和应用开发者的职责
- 更丰富的功能: 支持高级路由、流量分割、跨命名空间路由等
- 可移植性强: 统一的 API 标准,可以在不同的实现间切换
- 面向未来: 设计时就考虑了现代云原生应用的需求
1.2 什么是 Envoy Gateway
Envoy Gateway 是 Kubernetes Gateway API 的一个官方参考实现,由 Envoy Proxy 社区 (CNCF 项目) 维护。它使用 Envoy Proxy 作为数据平面,实现了 Gateway API 规范定义的各种功能。
简单来说:
- Gateway API = 标准/规范 (类似于接口定义)
- Envoy Gateway = 官方参考实现 (类似于接口的一个具体实现)
官方推荐: Envoy Gateway 作为 Gateway API 的官方参考实现,由 Envoy 社区积极维护,是目前最推荐使用的 Gateway API 实现之一。它提供了完整的 Gateway API 功能支持,并且有良好的性能和稳定性保证。
其他常见的 Gateway API 实现还包括:
- Istio Gateway (基于 Istio/Envoy,适合服务网格场景)
- Cilium Gateway (基于 Cilium/eBPF,适合高性能网络场景)
- Kong Gateway (基于 Kong,适合 API 管理场景)
- Traefik (Traefik 2.10+,适合云原生应用场景)
1.3 为什么要迁移到 Gateway API
重要背景: NGINX Ingress Controller 维护者已经宣布,该项目将逐步减少维护力度,社区建议迁移到更现代的解决方案。这使得 Gateway API 成为 Kubernetes 入口流量管理的首选方案。
Gateway API 相比 Ingress 的优势:
- 表达能力更强: 支持 HTTP header 匹配、权重路由、流量镜像等高级功能
- 类型化路由: HTTPRoute、TCPRoute、TLSRoute 等,更加明确
- 跨命名空间路由: 支持跨命名空间的路由引用
- 更好的扩展性: 通过标准化的方式支持各种高级功能
2. 环境准备
2.1 前置要求
本文基于以下版本进行部署:
- Kubernetes: v1.31.4 (要求 >= 1.27)
- Gateway API: v1.4.1 (最新稳定版)
- Envoy Gateway: v1.6.1 (最新稳定版)
- : 与 Kubernetes 版本匹配

