我想对我的应用程序进行失败测试。 主要场景是我的应用程序调用虚拟外部服务器并由于响应调用延迟而产生错误情况。
我在 k8s 集群中使用 istio。
我研究过 istio 中的故障注入,但该功能似乎会在调用我的应用程序时导致延迟。
我想要的是,当我的应用程序收到来自客户端的特定 API 调用时,它会调用虚拟外部服务器的 API 并延迟 istio 中对请求的响应。
这在 istio 中可能吗? 如果可以的话我该怎么办?
最好的。
我在 serviceentry 中注册了一个不属于我的网格的外部服务器。我尝试控制来自 istio 中外部服务器使用的域的流量,但当然它不起作用。
创建包含以下内容的 VirtualService 配置文件:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: myservice-delay
spec:
hosts:
- myservice
http:
- route:
- destination:
host: external-service
fault:
delay:
percent: 100
fixedDelay: 5s
现在 myservice-delay VirtualService 对所有发送到外部服务的请求引入了 5 秒的延迟。
kubectl apply -f myservice-delay.yaml
更多详细信息请参见:https://www.istioworkshop.io/09-traffic-management/05-fault-injection/