我有一个应用程序的虚拟服务。我的要求是在从此应用程序窗格发出的请求中添加客户标头。我不能/不想更改应用程序代码,这就是我在 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,因为服务网格的限制更大
我尝试在应用程序的传出请求中添加自定义标头,但没有得到它
如果我理解正确,您正在尝试将标头从服务 A 传播到服务 B(例如,您使用“custom-header: blah”调用服务 A,服务 A 调用服务 B 并且您希望服务 B 接收该标头) .
如果不修改代码,您将无法做到这一点 - 就像必须在 Istio 中传播分布式跟踪标头一样,您也必须对自定义标头执行相同的操作。