在轉發請求或響應之前,可以添加或刪除請求和響應標頭。如果您需要在不更改應用代碼的情況下修改請求或者響應的Header,可以使用虛擬服務來實現。本文介紹如何配置請求/響應頭變換。
前提條件
已完成準備工作,并部署httpbin服務和sleep服務。具體操作,請參見準備工作。
操作步驟
驗證服務配置。
在ACK集群對應的KubeConfig環境下,執行以下命令,進入sleep環境開啟bash。
kubectl exec -it deploy/sleep -- sh
執行以下命令,向httpbin服務發送請求。
curl -I httpbin:8000
預期輸出:
HTTP/1.1 200 OK Server: gunicorn/19.9.0 Date: Mon, 28 Aug 2023 06:15:30 GMT Connection: keep-alive Content-Type: text/html; charset=utf-8 Content-Length: 9593 Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true
使用istioctl工具,執行以下命令,為httpbin服務開啟L7 Waypoint。
istioctl x waypoint apply --service-account httpbin
使用以下內容,創建虛擬服務,配置httpbin應用的流量規則,添加對Header的修改配置。具體操作,請參見管理虛擬服務。
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: httpbin-vs namespace: default spec: hosts: - httpbin http: - route: - destination: host: httpbin headers: response: add: httpbin: hello remove: - x-envoy-upstream-service-time
驗證配置是否生效。
在ACK集群對應的KubeConfig環境下,執行以下命令,進入sleep環境開啟bash。
kubectl exec -it deploy/sleep -- sh
執行以下命令,向httpbin服務發送請求。
curl -I httpbin:8000
預期輸出:
HTTP/1.1 200 OK server: istio-envoy date: Fri, 11 Aug 2023 03:42:31 GMT content-type: text/html; charset=utf-8 content-length: 9593 access-control-allow-origin: * access-control-allow-credentials: true httpbin: hello
預期輸出表明虛擬服務中對Header的配置生效,即刪除了
x-envoy-upstream-service-time
字段,并添加了httpbin: hello
。
文檔內容是否對您有幫助?