我想将一些自定义标头传递给金丝雀服务。在将两个映射添加到模板时,它忽略了weight
并将标头添加到100%的流量并将它们路由到canary服务。
以下是我的大使服务配置
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Mapping
name: flag_off_mapping
prefix: /web-app/
service: web-service-flag
weight: 99
---
apiVersion: ambassador/v1
kind: Mapping
name: flag_on_mapping
prefix: /web-app/
add_request_headers:
x-halfbakedfeature: enabled
service: web-service-flag
weight: 1
我希望99%的流量可以在没有任何额外标头的情况下点击服务,1%的流量可以通过添加到请求对象的x-halfbakedfeature: enabled
标头来达到服务。
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-04T04:48:03Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.1", GitCommit:"4ed3216f3ec431b140b1d899130a69fc671678f4", GitTreeState:"clean", BuildDate:"2018-10-05T16:36:14Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}
$
在Github和SO中发布X-Posted的道歉。
请看看here: 作为解决方法,您可以考虑:
“使用包含相同前缀和标题所需的大使注释,使另一个服务指向相同的canary实例。”