第一次听到 Gateway API,很多人都会下意识问一句:"这不就是 Ingress 2.0 吗?"
表面上看确实都是"把外部流量带进集群、再转到 Service",但 Gateway API 真想解决的不是"能不能转发",而是入口治理怎么分工、权限怎么划分、路由能力怎么标准化。
你可以把它当成一次"把门口这摊事理顺"的改造:
谁来建门?门开几个口?谁能改路由?跨团队引用资源要不要审批?这些在 Ingress 时代不是做不到,而是做起来经常靠注解、靠约定、靠人肉协商------一忙起来就乱。Gateway API 的价值就在于:把这些规则拆开写进标准里。
先把整体思路说清楚:Gateway API 想把"门"和"路"分开
Ingress 往往是"一个对象塞很多事":入口、TLS、路由、扩展能力全堆在一起。问题是什么?
平台团队想稳定控制入口,但业务团队又想快速改路由;权限边界一模糊,改个路径都可能影响全站。你说这能不紧张吗?
Gateway API 的设计非常明确:
入口网关是入口网关(平台管),路由规则是路由规则(业务管),跨命名空间引用要授权(谁都别越界)。
思路清楚了,组件也就顺理成章。

GatewayClass:告诉集群"用哪一种网关实现"
GatewayClass 更像"选型声明"。它会绑定具体的 Controller(比如某个网关控制器或云厂商实现),意思是:
以后这种网关由谁来负责落地、支持哪些能力、按什么方式创建。
通常这东西是平台团队管的。原因也很现实:网关实现选错了,影响的是整个集群入口,不是某一个业务的事。谁会让业务同学随手换"公司大门"的施工队呢?
Gateway:真正的"入口网关实例",负责接流量
Gateway 是实际干活的入口网关对象。它会定义:
-
监听哪些端口(80/443?还是其他?)
-
用什么协议(HTTP/HTTPS/TCP/TLS...)
-
TLS 证书怎么配
-
哪些 Route 可以挂到我这个网关上(也就是谁有资格往这里加路由)
你可以把 Gateway 想成"门"本身:门开在哪、开几扇、怎么安保、谁能进来修改导向规则------这些都在 Gateway 的职责范围内。
Route:决定"流量怎么走",这才是业务最常改的东西
如果说 Gateway 是门,那 Route 就是门里面的"导向标识和车道规划"。Gateway API 把路由按协议拆成一组对象,用哪个协议就用哪个 Route:
-
HTTPRoute:最常用,按 Host/Path/Header 等做路由、重写、重定向、灰度分流
-
GRPCRoute:面向 gRPC 的路由(按服务/方法等维度)
-
TLSRoute:基于 SNI 的 TLS 路由
-
TCPRoute / UDPRoute:四层转发(看具体实现支持)
业务侧最爽的点在这里:
你只需要在自己的 namespace 里写 Route,把流量导到自己的 Service 就行,不用天天碰"门"的配置。想灰度?想按 header 分流?想把 /v1 和 /v2 拆开?路由层搞定。
ReferenceGrant:跨命名空间引用的"授权书",把边界讲清楚
这可能是 Gateway API 最容易被忽视、但又特别关键的一块。现实里经常出现这种情况:
-
网关在 infra namespace
-
业务在 app namespace
-
TLS Secret、后端 Service、或某些资源又在别的 namespace
那问题来了:你能不能随便引用别人的资源?
Ingress 时代很多时候靠 controller 自己的规则或者"大家别乱来"的约定,真出事了就扯皮。
Gateway API 直接把规则标准化:跨命名空间引用要有 ReferenceGrant 授权。
它就像一张"盖章许可":允许哪个 namespace 的 Route 引用哪个 namespace 的资源(Service/Secret 等)。边界写清楚了,团队协作就没那么互相猜了。
把它们串起来:一条链路就能讲明白
Gateway API 的核心关系可以这样理解:
-
GatewayClass:选用哪种网关实现(谁来实现)
-
Gateway:网关入口本体(门怎么开)
-
Route:流量规则(车怎么走)
-
ReferenceGrant:跨 namespace 引用授权(能不能用别人的资源)
更直观一点就是:
先选网关实现 → 建一个入口网关 → 业务把路由规则挂上去 → 跨命名空间引用需要授权。
总而言之:Gateway API 强在"分工明确"
Gateway API 真正厉害的地方,不是让你写更多 YAML,而是把入口治理拆得更工程化:
-
平台团队管"门"(GatewayClass/Gateway),保证稳定与安全
-
业务团队管"路由"(Route),保证迭代速度
-
跨团队资源引用有"授权机制"(ReferenceGrant),避免越界
你想想,入口流量就是集群门面,权限边界不清晰、规则不标准化,迟早会出事。Gateway API 把这些说清楚、写进标准里,这才是它存在的意义。