在 Istio 中 VirtualService 的传出请求中添加自定义标头

问题描述 投票:0回答:1

我有一个应用程序的虚拟服务。我的要求是在从此应用程序窗格发出的请求中添加客户标头。我不能/不想更改应用程序代码,这就是我在 k8s istio 级别寻找解决方案的原因。我的虚拟服务代码如下,我尝试使用“Headers”但没有成功。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
  name: example-vs
  namespace: example
spec:
  gateways:
    - istio-system/example-external
    - istio-system/example-internal
  hosts:
    - example.staging.internal
  http:
    - headers:
        response:
          add:
            x-custom-tenant: custom-header-testing
      match:
        - uri:
            prefix: /required-prefix
      name: required-routes
      route:
        - destination:
            host: example.xxxxx.svc.cluster.local
            port:
              number: 8080

现在我尝试从此服务调用另一个服务,但没有在上面的代码中添加自定义标头。

有人可以指出我正确的方向吗,我在这里做错了什么。

PS:我不想使用 Envoy Filter,因为服务网格的限制更大

我尝试在应用程序的传出请求中添加自定义标头,但没有得到它

kubernetes istio istio-gateway istio-operator
1个回答
0
投票

如果我理解正确,您正在尝试将标头从服务 A 传播到服务 B(例如,您使用“custom-header: blah”调用服务 A,服务 A 调用服务 B 并且您希望服务 B 接收该标头) .

如果不修改代码,您将无法做到这一点 - 就像必须在 Istio 中传播分布式跟踪标头一样,您也必须对自定义标头执行相同的操作。

© www.soinside.com 2019 - 2024. All rights reserved.