故障注入是一種軟件測試方式,通過在代碼中引入故障來發現系統隱藏的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