我想使用Istio的故障注入机制。
我的任务是在服务上添加5秒的超时。所以为了达到这个目的,我创建了自己的虚拟服务:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: hello
namespace: default
spec:
hosts:
- hello-service.default.svc.cluster.local
http:
- fault:
delay:
percent: 100 #Applies on all request
fixedDelay: 5s #Timeout of 5 sec
route:
- destination:
host: hello-service.default.svc.cluster.local
如您所见,我只重定向了hello服务并应用了5秒超时。不幸的是,超时根本不起作用......
这是documentation的例子:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ratings
spec:
hosts:
- ratings
http:
- fault:
delay:
percent: 100
fixedDelay: 2s
route:
- destination:
host: ratings
subset: v1
我究竟做错了什么 ? 谢谢你的帮助
更新1 - 添加目标服务
apiVersion: v1
kind: Service
metadata:
name: hello-service
namespace: default
spec:
selector:
app: hello
ports:
- port: 80
targetPort: 9080
更新2 - 添加proxy-config的输出
$istioctl proxy-config route hello-75c874b67f-6l4p9
NOTE: This output only contains routes loaded via RDS.
NAME VIRTUAL HOSTS
80 6
3000 4
8060 1
8080 2
8088 1
9090 1
9091 2
9093 5
9411 1
15004 2
15010 1
15030 1
15031 1
20001 1
1
添加此答案可以深入了解问题的状态。
在@Sergii Bishyr的帮助下,我现在知道我的问题中提供的virtualService正在运行。
我用2个简单的应用程序测试它,从第一个到第二个应用程序。在这种情况下,应用超时!
不幸的是,我使用虚拟服务的原始应用程序仍然无法正常工作。
测试应用程序和原始测试应用程序都是Web服务器,所以我不确定为什么在一个案例中它的工作而不是在第二个...这个谜尚未解决。