故障注入是一种软件测试方式,通过在代码中引入故障来发现系统隐藏的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
中断故障
引入 HTTP abort 故障,返回HTTP对应错误码比如500 503 等等
- 场景1 为服务A设置响应码500的中断故障,期望100%请求响应为httpstatus=500
http:
- fault:
abort:
httpStatus: 500
percentage:
value: 100.0
- 场景2 为服务A设置响应码500的中断故障,期望50%请求响应为httpstatus=500
http:
- fault:
abort:
httpStatus: 500
percentage:
value: 50.0