
— 特色专栏 —
大家好,我是民工哥!
Kubernetes 流量管理新利器:Gateway API 来了!

Gateway API 是 Kubernetes 中定义集群入口流量规则的下一代 API 规范,旨在替代传统 Ingress,提供更丰富、灵活且可扩展的流量管理能力,是 Kubernetes 生态向现代化网络架构演进的关键一步。

Ingress 仅支持 HTTP/HTTPS 流量,而 Gateway API 扩展了对 TCP、UDP、TLS、gRPC 等协议的支持,适用于数据库、消息队列等非 HTTP 场景,满足多样化业务需求。
Gateway API 支持基于 路径(Path)、主机名(Host)、HTTP 头(Header)、查询参数(Query Params) 等条件的路由,甚至支持 权重路由、蓝绿部署、金丝雀发布 等高级流量管理策略,远超 Ingress 的路径/主机匹配能力。
Gateway API 通过 GatewayClass(集群级网关类型)、Gateway(命名空间级流量入口)、Route(路由规则,如 HTTPRoute) 三层资源模型,明确划分了 基础设施提供商、集群运维、应用开发者 的角色,支持跨命名空间路由和细粒度权限控制,提升多团队协作效率。
Gateway API 是 Kubernetes 官方项目,通过 CRD(自定义资源定义) 实现标准化,避免 Ingress 因实现差异导致的“分裂”问题。同时,它支持通过 ExtensionPolicy 等机制扩展功能,适应不同厂商的定制需求。
Gateway API 设计初衷是统一南北向(Ingress)和东西向(Service Mesh)流量管理,支持与 Istio、Linkerd 等服务网格无缝集成,为云原生应用提供一致的流量控制体验。

特性 | Gateway API | Ingress |
|---|---|---|
协议支持 | HTTP、TCP、UDP、TLS、gRPC 等 | 仅 HTTP/HTTPS |
路由规则 | 支持 Header、Query Params、权重路由等 | 仅路径/主机匹配 |
资源模型 | GatewayClass、Gateway、Route 三层分离 | 单一 Ingress 资源 |
多租户支持 | 跨命名空间路由,角色分离 | 依赖 Annotations,扩展性差 |
标准化程度 | Kubernetes 官方项目,统一规范 | 实现差异大,分裂严重 |
高级功能 | 蓝绿部署、金丝雀发布、流量镜像等 | 需依赖 Annotations 或自定义控制器 |

通过 HTTPRoute 定义基于 Header 的路由规则,实现 A/B 测试或灰度发布;结合 GRPCRoute 管理 gRPC 服务流量。
在同一个 Gateway 资源中配置 HTTP 和 TCP 监听器,统一处理 Web 服务和数据库连接流量。
通过 SecurityPolicy 资源强制实施 TLS 终止或流量加密,结合 ObservabilityPolicy 集成 Prometheus 和 OpenTelemetry。
Gateway API 的标准化设计使其易于跨云厂商(AWS、Azure、GCP)和 Kubernetes 发行版(OpenShift、Rancher)迁移,避免厂商锁定。
Envoy Gateway、Traefik、HAProxy、Nginx Gateway Fabric、Istio 等主流网关均已支持 Gateway API。
AWS ALB、GCP Global Load Balancer 等云负载均衡器逐步兼容 Gateway API。
Gateway API 已发布 v1.0 稳定版,核心功能(如 GatewayClass、HTTPRoute)已毕业,但部分实验性特性(如 UDPRoute)仍在迭代中。

三步构建云原生流量入口
根据集群环境选择以下方案之一:
Envoy Gateway(推荐Kubernetes原生场景)
# 安装Gateway API CRDs与Envoy Gateway控制器
kubectl apply -f https://github.com/envoyproxy/gateway/releases/latest/download/install.yaml
# 验证部署状态
kubectl wait --timeout=5m -n envoy-gateway-system deployment/envoy-gateway --for=condition=Available
Nginx Gateway Fabric(适合已有Nginx生态用户)
helm repo add nginx-gateway-fabric https://nginx-gateway-fabric.github.io/nginx-gateway-fabric/
helm install nginx-gateway nginx-gateway-fabric/nginx-gateway-fabric
Traefik Proxy(轻量级动态路由场景)
helm repo add traefik https://traefik.github.io/charts
helm install traefik traefik/traefik --set ports.websecure.http3.enabled=true
创建gateway.yaml定义流量入口:
apiVersion: gateway.networking.k8s.io/v1
kind:Gateway
metadata:
name:production-gateway
spec:
gatewayClassName:envoy-gateway# 对应安装的GatewayClass
listeners:
-protocol:HTTP
port:80
name:http
allowedRoutes:
namespaces:
from:All
应用配置后,控制器自动创建负载均衡服务(默认LoadBalancer类型,测试环境可改为NodePort)。
通过ReferenceGrant实现跨空间路由:
apiVersion: gateway.networking.k8s.io/v1alpha2
kind:ReferenceGrant
metadata:
name:allow-cross-ns
spec:
from:
-group:gateway.networking.k8s.io
kind:HTTPRoute
namespace:team-a
to:
-group:""
kind:Service
name:payment-service
从基础路由到高级流量控制。
基于域名和路径的精细路由(httproute.yaml):
apiVersion: gateway.networking.k8s.io/v1
kind:HTTPRoute
metadata:
name:order-service-route
spec:
parentRefs:
-name:production-gateway
hostnames:["api.example.com"]
rules:
-matches:
-path:
type:PathPrefix
value:/orders
backendRefs:
-name:order-service
port:8080
rules:
-matches:
-path:/checkout
backendRefs:
-name:checkout-v1
weight:90
-name:checkout-v2
weight:10
filters:
- type: RequestMirror
requestMirror:
backendRef:
name: shadow-service
port: 8080
listeners:
-protocol:HTTPS
port:443
tls:
mode:Terminate
certificateRefs:
-kind:Secret
name:example-com-tls
Gateway实例apiVersion: rbac.authorization.k8s.io/v1
kind:RoleBinding
metadata:
name:team-a-gateway-access
subjects:
-kind:Group
name:team-a
roleRef:
kind:ClusterRole
name:gateway-admin
# Envoy Gateway配置示例
metrics:
provider:
prometheus:
port: 9091
listeners:
- protocol: HTTPS
port: 443
configuration:
http3:
enabled: true
Gateway状态是否为ReadyHTTPRoute的parentRefs是否指向正确Gatewaykubectl describe httproute查看事件日志Gateway所在命名空间ReferenceGrant配置是否覆盖目标服务Gateway API 的设计目标不仅是替代 Ingress,更是为 Kubernetes 网络构建一个 统一、可扩展、角色导向 的流量管理框架。
随着服务网格、边缘计算等场景的兴起,Gateway API 将进一步整合 L4/L7 负载均衡、API 网关、入口控制器 等功能,成为云原生网络的核心组件。
对于企业而言,尽早评估并迁移至 Gateway API 将有助于降低技术债务,提升运维效率,并为未来架构升级奠定基础。
👍 既然都看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~