对于匹配到的请求,HTTP规则可以进行路由直接响应,用于指定应发送给客户端的固定响应,即直接向客户端返回一个HTTP Response,而不用交给应用程序处理。本文介绍如何配置直接响应。
前提条件
已完成准备工作,并部署httpbin服务和sleep服务。具体操作,请参见准备工作。
操作步骤
验证服务配置是否生效。
在ACK集群对应的KubeConfig环境下,执行以下命令,进入sleep环境开启bash。
kubectl exec -it deploy/sleep -- sh
执行以下命令,向httpbin服务发送请求。
curl -I httpbin:8000
预期输出:
HTTP/1.1 200 OK server: istio-envoy date: Thu, 10 Aug 2023 09:32:09 GMT content-type: text/html; charset=utf-8 content-length: 9593 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 2
使用以下内容,创建虚拟服务,添加Direct Response配置。具体操作,请参见管理虚拟服务。
验证配置是否生效。
在ACK集群对应的KubeConfig环境下,执行以下命令,进入sleep环境开启bash。
kubectl exec -it deploy/sleep -- sh
执行以下命令,向httpbin服务发送请求。
curl -I httpbin:8000
预期输出:
HTTP/1.1 503 Service Unavailable content-length: 13 content-type: text/plain date: Thu, 10 Aug 2023 09:33:52 GMT server: istio-envoy
执行以下命令,向httpbin服务发送请求。
curl httpbin:8000
预期输出:
unknown error
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: httpbin-vs
namespace: default
spec:
hosts:
- httpbin.default.svc.cluster.local
http:
- directResponse:
body:
string: unknown error
status: 503
文档内容是否对您有帮助?