基于clientIP的灰度发布策略
能否开发基于clientIP的灰度发布策略。
@yjicfdx 能否提供一个你希望的example范例
比如: 1.1.1.1终端请求a.com请求到的是后端v1版本 2.2.2.2终端请求a.com请求到的是后端的v2版本 这样形容可以吗
根据来源IP路由到不同版本对吗? @yjicfdx
如果客户端IP数量少的情况下,可以通过请求头X-Forwarded-For获取到客户端IP进行匹配,路由到相应的版本 @yjicfdx
具体是在"路由配置"->"策略"里面配置吗,有没有配置样便可以参考一下,非常感谢
https://higress.cn/zh-cn/docs/user/kruise-rollout#%E9%87%91%E4%B8%9D%E9%9B%80%E5%8F%91%E5%B8%83 A/B Test 基于headers进行匹配就行,比如配置为:
....
strategy:
canary:
steps:
- matches:
- headers:
- name: X-Forwarded-For
value: 来源IP
....
控制台配置方式如下:
@yjicfdx
太感谢了。
@yjicfdx 应该要用前缀匹配,X-Forwarded-For 是逗号分隔的多个 IP,第一个 IP 是第一跳,但也有可能被伪造
也可以使用这个header:x-envoy-external-address,这个是直连网关的 IP,不可伪造,不过链路上有多跳的话,这个不一定是真实客户端IP
感谢各位大佬的回复。
测试下来,不符合预期.
更新镜像后, Deployment、SVC、Ingress都会生成一个canary版本,需要有canary域名指向灰度版本的ingress才可以测试.
下面是配置信息的截图