higress icon indicating copy to clipboard operation
higress copied to clipboard

基于clientIP的灰度发布策略

Open yjicfdx opened this issue 2 years ago • 12 comments

能否开发基于clientIP的灰度发布策略。

yjicfdx avatar Aug 11 '23 05:08 yjicfdx

@yjicfdx 能否提供一个你希望的example范例

johnlanni avatar Aug 11 '23 05:08 johnlanni

比如: 1.1.1.1终端请求a.com请求到的是后端v1版本 2.2.2.2终端请求a.com请求到的是后端的v2版本 这样形容可以吗

yjicfdx avatar Aug 11 '23 09:08 yjicfdx

根据来源IP路由到不同版本对吗? @yjicfdx

cf1998 avatar Aug 11 '23 09:08 cf1998

如果客户端IP数量少的情况下,可以通过请求头X-Forwarded-For获取到客户端IP进行匹配,路由到相应的版本 @yjicfdx

cf1998 avatar Aug 11 '23 10:08 cf1998

具体是在"路由配置"->"策略"里面配置吗,有没有配置样便可以参考一下,非常感谢

yjicfdx avatar Aug 14 '23 01:08 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
....

控制台配置方式如下: image

@yjicfdx

cf1998 avatar Aug 14 '23 01:08 cf1998

太感谢了。

yjicfdx avatar Aug 14 '23 02:08 yjicfdx

@yjicfdx 应该要用前缀匹配,X-Forwarded-For 是逗号分隔的多个 IP,第一个 IP 是第一跳,但也有可能被伪造

johnlanni avatar Aug 14 '23 02:08 johnlanni

也可以使用这个header:x-envoy-external-address,这个是直连网关的 IP,不可伪造,不过链路上有多跳的话,这个不一定是真实客户端IP

johnlanni avatar Aug 14 '23 02:08 johnlanni

感谢各位大佬的回复。

yjicfdx avatar Aug 14 '23 03:08 yjicfdx

测试下来,不符合预期. 更新镜像后, Deployment、SVC、Ingress都会生成一个canary版本,需要有canary域名指向灰度版本的ingress才可以测试. image image image

yjicfdx avatar Aug 17 '23 08:08 yjicfdx

下面是配置信息的截图 image

yjicfdx avatar Aug 17 '23 08:08 yjicfdx