4. Gateway API 架构选型原则:南北向与东西向流量场景分析

在云原生网关选型中,流量方向是决定架构形态的首要因素。南北向流量(North-South Traffic)指从集群外部进入内部或从内部返回外部的流量,通常由 Ingress / Gateway 承载;东西向流量(East-West Traffic)指集群内部服务之间的通信,传统由 Service Mesh 的 Sidecar 或 NodePort 处理。Gateway API 通过统一的资源模型(GatewayClass、Gateway、HTTPRoute、TLSRoute 等)同时覆盖两个方向,但不同实现方案的侧重点和能力边界差异显著。

4.1 南北向流量场景与关键需求

  • 入口网关:暴露 HTTP/HTTPS、TLS、TCP/UDP 服务到公网或 VPC 外部。
  • TLS 终止与 SNI 路由:多域名证书管理、TLS 透传、mTLS 认证。
  • 流量治理:限流、熔断、重试、超时、健康检查、灰度发布。
  • 安全策略:WAF、IP 白名单、OAuth/OIDC、JWT 验证。
  • 性能要求:高吞吐、低延迟、连接池管理、TLS 硬件加速。
选型提示:南北向网关通常部署在集群边缘,作为统一的流量入口。如果团队已有 Nginx Ingress 或 HAProxy 经验,优先考虑支持 Gateway API 且兼容原有配置习惯的实现(如 Kong、Contour)。

4.2 东西向流量场景与关键需求

  • 服务间通信:内部 RPC/HTTP 调用,通常需要 mTLS 自动加密。
  • 流量策略:超时、重试、熔断、负载均衡算法、连接池限制。
  • 可观测性:分布式追踪、协议级指标(请求量、延迟、错误率)。
  • 安全策略:服务级 RBAC、授权策略(AuthorizationPolicy)、证书轮换。
  • 多集群通信:跨集群服务发现与路由,统一的服务网格控制面。
注意:东西向流量场景下,Sidecar 模式会引入额外的资源开销和延迟。如果对性能敏感,建议评估 Sidecar-less 方案(如 Cilium + Gateway API 或 Envoy Gateway 的 ztunnel 模式)。

4.3 南北向 vs 东西向:架构决策矩阵

维度 南北向(North-South) 东西向(East-West)
流量路径 外部客户端 → 网关 → 后端服务 服务 A → 服务 B(同集群或跨集群)
核心资源 Gateway、HTTPRoute、TLSRoute HTTPRoute、Service、ServiceImport(多集群)
安全需求 WAF、JWT、OAuth、TLS 终止 mTLS、SPIFFE、授权策略
性能敏感度 高(公网延迟、TLS 握手) 极高(内部调用频繁,延迟增加不可接受)
典型实现 Envoy Gateway、Kong、Contour Istio(Sidecar)、Cilium(Sidecar-less)
南北向与东西向流量架构对比 南北向(North-South) 外部客户端 Gateway(入口) 后端服务 东西向(East-West) 服务 A Sidecar / 网格代理 服务 B 南北向:外部 → 网关 → 服务 | 东西向:服务 → 网格代理 → 服务

4.4 主流实现方案对比

以下对比基于 Gateway API v1.2 标准,评估四个主流实现:Envoy Gateway、Istio、Contour、Kong。评估维度包括南北向能力、东西向能力、性能、生态成熟度、运维复杂度。

维度 Envoy Gateway Istio Contour Kong
南北向 ★★★★★ 原生 Gateway API 实现,Envoy 数据面,支持 HTTP/TLS/TCP/UDP ★★★☆☆ 通过 Ingress Gateway 支持,但非核心场景 ★★★★☆ 专注南北向,Envoy 数据面,配置简洁 ★★★★★ 成熟商业网关,支持 Gateway API 插件扩展
东西向 ★★★☆☆ 支持 mTLS 和路由,但无完整服务网格能力 ★★★★★ 服务网格标杆,Sidecar/Sidecar-less 双模式 ★★☆☆☆ 不原生支持东西向,需搭配其他网格 ★★☆☆☆ 不原生支持东西向,需 Kuma 或 Mesh 插件
性能 高(Envoy 原生,无额外抽象层) 中高(Sidecar 模式有额外跳数) 高(Envoy 原生,配置路径短) 中高(插件系统可能引入延迟)
生态与社区 快速增长,CNCF 孵化,Envoy 社区支持 成熟,CNCF 毕业,企业级支持广泛 稳定,VMware 主导,适合传统企业 商业驱动,插件市场丰富,企业版功能强
运维复杂度 低(CRD 少,配置直观) 高(控制面组件多,Sidecar 注入管理) 低(单二进制部署,配置简单) 中(需管理 Kong 控制面与数据面)
Gateway API 支持度 全面(v1.2 核心 API 全部实现) 部分(HTTPRoute 成熟,TLSRoute 实验) 全面(v1.2 核心 API 全部实现) 全面(v1.2 核心 API + 自定义插件)

4.5 选型决策流程

  1. 确定流量方向优先级:如果 80% 流量是南北向,优先考虑 Envoy Gateway 或 Contour;如果东西向是核心场景,Istio 是首选。
  2. 评估团队技能:已有 Envoy 运维经验 → Envoy Gateway;已有 Istio 经验 → Istio;已有 Kong 经验 → Kong。
  3. 检查 Gateway API 版本兼容性:确保所选实现支持你需要的 API 资源(如 TLSRoute、BackendTLSPolicy)。
  4. 性能与资源预算:东西向场景下,Sidecar 模式每个 Pod 额外消耗 50-200m CPU / 128-512Mi 内存;Sidecar-less 模式(Cilium + Envoy Gateway)可降低开销。
  5. 多集群与混合云:如果涉及多集群通信,Istio 的 Multi-Cluster 和 ServiceEntry 更成熟;Envoy Gateway 正在通过 Kubernetes Multi-Cluster Service API 扩展。
推荐组合:
• 南北向为主 + 轻量东西向:Envoy Gateway(南北向)+ Cilium(东西向 Sidecar-less)
• 全栈服务网格:Istio(南北向 Ingress Gateway + 东西向 Sidecar)
• 传统企业迁移:Contour(南北向)+ Istio(东西向),通过 Gateway API 统一管理
Gateway API 实现方案选型决策树 流量方向优先级 南北向 > 80% Envoy Gateway / Contour 东西向 > 50% Istio(Sidecar / Sidecar-less) 混合流量(各占 50%) Envoy Gateway + Cilium / Istio 决策依据:流量方向 → 团队技能 → Gateway API 兼容性 → 性能预算 → 多集群需求

4.6 实现方案详细分析

4.6.1 Envoy Gateway

  • 架构:控制面(egctl)+ 数据面(Envoy),CRD 驱动,原生支持 Gateway API v1.2。
  • 优势:配置简洁,性能高,社区活跃,适合南北向为主、东西向轻量需求的场景。
  • 局限:东西向能力有限,无内置服务网格控制面,需搭配 Cilium 或 Istio 实现完整 mTLS。
  • 适用场景:云原生边缘网关、API 网关、微服务入口。

4.6.2 Istio

  • 架构:控制面(istiod)+ 数据面(Envoy Sidecar / Ambient 模式),支持 Gateway API 和 Istio API 双模式。
  • 优势:东西向能力最强,mTLS 自动注入,多集群支持成熟,可观测性丰富。
  • 局限:运维复杂度高,Sidecar 模式资源开销大,南北向配置相对繁琐。
  • 适用场景:全栈服务网格、多集群通信、零信任安全。

4.6.3 Contour

  • 架构:控制面(contour)+ 数据面(Envoy),专注南北向,配置通过 HTTPProxy / Gateway API。
  • 优势:部署简单,单二进制,配置直观,适合传统企业迁移。
  • 局限:东西向能力缺失,社区规模较小,扩展性有限。
  • 适用场景:南北向入口网关、Kubernetes Ingress 替代、轻量级边缘代理。

4.6.4 Kong

  • 架构:控制面(Kong Manager / decK)+ 数据面(Kong Gateway / Kong Mesh),支持 Gateway API 和插件系统。
  • 优势:插件生态丰富(500+ 插件),企业级功能(WAF、OAuth、Rate Limiting),商业支持。
  • 局限:东西向需额外部署 Kong Mesh(基于 Kuma),性能受插件数量影响。
  • 适用场景:API 管理平台、企业级网关、需要丰富插件的南北向场景。
避坑指南:
• 不要试图用一个实现覆盖所有场景——南北向和东西向的优化目标不同,强行统一可能导致性能或功能妥协。
• 如果选择 Istio 作为南北向网关,注意 Ingress Gateway 的配置复杂度,建议使用 Gateway API 而非 Istio 原生 Ingress。
• Kong 的插件系统虽然强大,但每个插件都会增加数据面延迟,生产环境需做性能基准测试。

4.7 本章小结