我想使用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
答案 0 :(得分:0)
添加此答案以深入了解问题的状态。
借助@Sergii Bishyr,我现在知道问题中提供的virtualService正在运行。
我用两个简单的应用程序(从第一个滚动到第二个)进行了测试。在这种情况下,将应用超时!
不幸的是,在我使用虚拟服务的原始应用程序上,它仍然无法正常工作。
测试应用程序 和原始应用程序都是网络服务器,因此我不确定为什么在某些情况下它可以工作,而在第二个...这个谜还没有解决。