配置金丝雀流量转移
金丝雀流量转移(Canary traffic shifting)能够通过将少量流量逐渐路由到新的上游(upstreams),同时将大部分流量保持在稳定的默认上游,从而安全地测试新的上游。这种增量方法通过将潜在问题控制在有限的用户范围内来降低风险,让你能够在不影响更广泛用户群的情况下识别并解决问题。
备注
金丝雀流量转移与金丝雀发布不同,因为 API/服务版本是不变的。金丝雀发布是指同一 API/服务的两个版本的并发运行和可用。
先决条件
- 安装 API7 企业版。
- 创建一个路由 到
/headers。
按权重转移流量
在这个示例中,你将把 10% 的流量引导到一个新的上游。其余 90% 的流量将继续转发到默认上游。
在测试完新上游后,考虑用新值重写默认上游配置,并删除插件以终止金丝雀过程。
- Dashboard
- ADC
- Ingress Controller
- 从侧边导航栏 选择你网关组的 已发布服务,然后点击你要修改的服务,例如版本为
1.0.0的httpbin。 - 在该服务下,从侧边导航栏选择 上游。
- 在 连接配置 模块中,点击 编辑,在 连接配置 模块中,选择
node,然后点击 保存。注意:由于
mock.api7.ai强制使用 HTTPS 访问,上游需要配置为对 HTTPS 端点使用443端口。pass_host参数必须更改为 node,以确保成功与上游握手。请根据你的实际情况进行调整。 - 点击 新增上游。
- 在对话框中,执行以下操作:
- 在 名称 字段中,输入
new upstream。 - 点击 新增节点 来调整节点的主机,使其指向新的后端。例如,使用
mock.api7.ai作为主机,443作为端口。 - 点击 新增。
- 在 名称 字段中,输入
- 在上游标题处(在 操作 按钮下方)点击 查看 ID 并复制以供使用。
- 在已发布的服务下,从侧边导航栏选择 插件。
- 点击 新增插件。
- 搜索
traffic-split插件,然后点击 新增。 - 在对话框中,执行以下操作:
-
切换到 JSON/YAML,并添加以下配置:
{"rules": [{"weighted_upstreams": [{"upstream_id": "new_upstream_id", // 使用 upstream id, 而不是 upstream name"weight": 1},{"weight": 9}]}]} -
点击