Istio 故障注入
Istio 故障注入与其他在网络层引入错误(例如延迟数据包或者直接杀死 Pod)的机制不同,Istio 允许在应用程序层注入故障。这使得可以注入更多相关的故障,比如 HTTP 错误代码等。
Istio 可以注入两种类型的故障,而这两种故障都是使用虚拟服务来配置的:
延迟:模拟增加网络延迟或上游服务过载。
中止:模拟服务故障而导致调用服务不可用。中止通常以 HTTP 错误代码或 TCP 连接失败表示
故障注入
尽可能去模拟出可能会出现问题,用于模拟问题
1.延迟故障
2.中断故障
控制时间也就是等多少秒然后再往svc去转发,其实也就是暂停一下,这叫做延时注入。
凡是往svc1走的时候,都给你延迟一下fixedDelay,percent意思为百分比,就是客户端来流量的时候,是不是所有的客户端经过这个vs的时候都做延迟一下,还是按照比例去做。
故障注入是一种软件测试方式,通过在代码中引入故障来发现系统隐藏的bug,并可以与压测一起验证软件的稳健性。
目前istio仅针对http协议支持两种方式:延迟故障和中断故障,所有故障相关配置在 Virtual services CRD对象内。
延迟故障
- 场景1 为服务A设置5秒延迟,期望100%请求都是 5秒后返回数据
## 配置示例
http:
- fault:
delay:
percentage:
value: 100.0
fixedDelay: 5s
- 场景2 为服务A设置5秒延迟,期望50%的请求都是5秒后返回数据
## 配置示例
http:
- fault:
delay:
percentage:
value: 50.0
fixedDelay: 5s