13.7 EnvoyFilter

上一章

13.9 在Gateway上使用HTTPS

下一章

更多图书

13.8 添加请求头

在请求发送给后端服务实例时,给请求添加请求头。

【实验】

1)创建测试Pod:


$ kubectl apply -f kubernetes/dns-test.yaml

2)部署httpbin服务:


$ kubectl apply -f kubernetes/httpbin.yaml
$ kubectl get pod -l app=httpbin
NAME                          READY       STATUS        RESTARTS       AGE
httpbin-b67975b8f-vdstk       2/2         Running       0              7s

3)创建httpbin服务的添加请求头路由规则:


$ kubectl apply -f istio/miscellaneous/virtual-service-httpbin-append-headers.yaml

4)服务访问测试:


$ kubectl exec dns-test -c dns-test -- curl -s http://httpbin:8000/headers
{
  "headers": {
    "Accept": "*/*", 
    "Content-Length": "0", 
    "Host": "httpbin:8000", 
    "User-Agent": "curl/7.35.0", 
    "X-B3-Sampled": "1", 
    "X-B3-Spanid": "5961ccd986a78b3a", 
    "X-B3-Traceid": "5961ccd986a78b3a", 
    "X-Custom-1": "1", 
    "X-Custom-2": "2", 
    "X-Request-Id": "4748e668-b49c-989f-9047-803a6654ec5d"
  }
}

从上面的服务访问测试可以看出,当访问httpbin服务时,Envoy代理自动给请求添加了X-Custom-1和X-Custom-2请求头。

5)清理:


$ kubectl delete -f kubernetes/dns-test.yaml
$ kubectl delete -f kubernetes/httpbin.yaml
$ kubectl delete -f istio/miscellaneous/virtual-service-httpbin-append-headers.yaml