在请求发送给后端服务实例时,给请求添加请求头。
【实验】
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