在 Istio 虚拟服务中添加自定义 headers

Add Custom headers in Istio Virtual service

我正在使用 Istio 1.10.0 和 minikube。 Kubernetes 服务器版本为 1.19.8.

如何在http请求中添加多个header?是否可以放置动态值,例如 request.headers["Host"]?

X-Forwarded-Host $host;    
X-Forwarded-Port 9090;
X-Forwarded-Proto http;

下面的示例可以很好地添加响应 header。

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  annotations:
    helm.sh/hook: pre-install, pre-upgrade
  creationTimestamp: "2021-11-22T13:01:36Z"
  generation: 8
  name: direct-vs
  namespace: cvrm
  resourceVersion: "72069"
  selfLink: /apis/networking.istio.io/v1beta1/namespaces/cvrm/virtualservices/cvrm-direct-vs
  uid: d398a13e-fd81-4ada-8e36-617287cae1bc
spec:
  gateways:
  - gateway.istio-system.svc.cluster.local
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /console
    route:
    - destination:
        host: console-bs.cvrm.svc.cluster.local
        port:
          number: 8087
      headers:
        response:
          add:
            Custom-Header: test

您将 headers 添加到请求,就像您对响应所做的那样。

...
headers:
  request:
    add:
      foo: bar
...

如果要添加多个headers可以试试

...
headers:
  request:
    add:
      foo: foo
      bar: bar
...

无法在 Istio 清单中添加动态值。