定向灰度:可信租户路由

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。
本文缩写(英文全称与中文含义)
缩写 英文全称/名称 中文含义
HTTP Hypertext Transfer Protocol 超文本传输协议
ID Identifier 标识符
SLO Service Level Objective 服务等级目标

前置:共享基线。场景:只有员工租户使用新版本,其余用户始终 stable。身份服务从已验证会话生成 x-release-cohort: internal;边缘必须删除客户端同名 header,再由可信认证服务写入。不能把浏览器传来的 header/cookie 当作权限。

1. 建立可信边界#

在现有认证网关配置上述覆盖逻辑;应用后端仅允许该网关访问。先尝试外部直接发送 x-release-cohort: internal,日志必须显示被删除/重写;不通过则停止实验。内部诊断入口单独鉴权,不对公网提供直接访问后端的路径。

2. 替换基线路由 rules#

复制 route-stable.yaml 为 route-cohort.yaml,只替换 spec.rules:

rules:
  - matches:
      - headers:
          - {name: x-release-cohort, type: Exact, value: internal}
    backendRefs: [{name: orders-candidate, port: 80}]
  - backendRefs: [{name: orders-stable, port: 80}]
kubectl apply --dry-run=server -f route-cohort.yaml
kubectl apply -f route-cohort.yaml
kubectl -n orders get httproute orders-release -o yaml

3. 验收与恢复#

分别用员工/普通租户的真实登录令牌调用订单业务;连续请求和跨 Pod 请求仍命中同一版本。伪造 header、过期令牌、缺失 cookie 均不能进入内部人群;未登录敏感请求保持 401/403。授权仍由应用检查,命中新版本不等于获得数据权限。

观察候选版本 SLO、租户级正确性和审计;停止灰度时 kubectl apply -f route-stable.yaml,清除身份服务的内部人群配置并验证普通流量。不要把完整用户 ID/令牌写入网关日志。

参考:HTTP header 路由。

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭