首页/开发/CI/CD 与发布速查/Gateway API 权重分流(HTTPRoute)
发布策略60 条

Gateway API 权重分流(HTTPRoute)

新一代网关 API:HTTPRoute 的 backendRefs 支持为多个后端设置权重,逐级调整权重即可实现灰度与蓝绿切换,配置比注解式更结构化。

CI/CD 与发布速查开发更新于 2026-10-13

Gateway API 权重分流是什么

Gateway API 是新一代的网关资源模型:HTTPRoute 的 backendRefs 为多个后端设置权重,逐级调整权重即可做灰度与蓝绿切换,配置结构比注解式更清晰、便于静态校验。与 Ingress 可并行共存,适合渐进迁移:先把新路由跑在测试域名上,再逐步接过正式流量。

基本信息

资源Gateway / HTTPRoute / backendRefs
权重weight 为相对比例(省略默认 1)
操作调大新后端权重即放量
共存可与 Ingress 资源并行,逐步迁移
分工平台团队管 Gateway(入口与证书),业务团队管 HTTPRoute(路由与权重)

典型使用场景

  • 灰度放量:权重从 10 逐步加到 100,每步观察指标
  • 蓝绿切换:0/100 一次性切换,失败快速切回
  • 多后端分流:同一路由按比例分发,逐步收口
  • 配合按头/路径匹配:先限定范围再放量
  • 网关迁移:与 Ingress 并行逐步替换
  • 策略校验:结构化字段可进静态检查
  • 迁移节奏:并存期明确流量归属与回退路径

90/10 分流

90/10 分流
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata: {name: web}
spec:
  parentRefs: [{name: web-gateway}]
  rules:
  - backendRefs:
    - {name: web-v1, port: 80, weight: 90}   # 稳定版
    - {name: web-v2, port: 80, weight: 10}   # 灰度版
    # 放量就是改这两个数字再 apply

与 Ingress 对比

维度Gateway APIIngress
模型分层角色清晰单层注解堆叠
分流原生权重字段依赖实现注解
校验结构化可静态检查注解难校验,规范之外靠约定
具体行为(会话保持、超时、重试)由网关实现决定:上线前按实现的文档核对能力矩阵。
角色分工写进评审流程:入口与证书归平台,路由与权重归业务。
版本选择:v1 是稳定通道;alpha/beta 通道的字段别在生产提前用。
权重变更走 Git:谁在何时调了多少有记录,回放与复盘都有依据。
权重是相对比例:90/10 与 9/1 效果相同,按比例理解即可,不必纠结绝对值。
后端用不同 Service 承载:两个版本各建一个 Service、选择器分别打到各自 Pod,HTTPRoute 只改权重数字,不重发工作负载;不合格就把新后端权重归零,一分钟完成退场。

易错点

  • 把规范当实现:不同网关实现的行为细节存在差异,需逐一验证
  • 调权重不观测:规范不提供自动回滚,观测与回退流程仍要自建,别把规范当守护神
  • 网关实现支持不齐:先用测试路由验证功能集,再迁移正式流量
  • 权重变更无记录:直接 kubectl edit 导致来源不可追溯,统一走 Git
  • parentRefs 指错网关:路由挂到别的入口,排查时误判转发失效,先核对 parentRefs 指向

数据来源与参考

  • Gateway API 文档《HTTP Routing》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌