基于自定义标头的Istio流量路由

时间:2020-03-26 17:15:46

标签: kubernetes istio envoyproxy

我正在尝试在Kubernetes集群中使用Istio实现某种流量路由。

情况如下:

(客户服务)=>(首选项服务)=>(推荐服务),它具有两个版本:v1和v2。

我想使用一个自定义标头,例如来自Istio VirtualService的X-Svc-Env,并通过此标头指定我要点击的推荐服务的版本。

VirtualService的配置如下:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: recommendation
  namespace: online
spec:
  hosts:
  - recommendation
  http:
  - match:
    - headers:
        x-svc-env:
          regex: v2
    route:
    - destination:
        host: recommendation
        subset: version-v2
  - route:
    - destination:
        host: recommendation
        subset: version-v1

此外,正在使用的DestinationRule是以下内容:

kind: DestinationRule
metadata:
  name: recommendation
  namespace: online
spec:
  host: recommendation
  subsets:
  - labels:
      version: v1
    name: version-v1
  - labels:
      version: v2
    name: version-v2

嗯...这不起作用,因为以某种方式,我的自定义标头没有通过Envoy代理传播(我想)。

我应该提一下,如果我使用的是众所周知的HTTP标头,例如:baggage-user-agent(这是OpenTracing规范中的User-Agent标头,那么一切进展都很好)。

Tx!

0 个答案:

没有答案