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