{ambassador ingress}无法在同一映射中使用canary和add_request_headers

时间:2019-03-06 15:20:57

标签: kubernetes kubernetes-ingress envoyproxy

我想将一些自定义标头传递给canary服务。在将两个映射都添加到模板时,它会忽略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标头的情况下到达服务。

  • 大使:0.50.3
  • Kubernetes环境[AWS L7 ELB]
$ 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发布的道歉。

1 个答案:

答案 0 :(得分:0)

请看看here
解决方法是您可以考虑:

  

“与大使一起使服务指向相同的金丝雀实例   注释包含所需的相同前缀和标头。”