istio 故障注入調研

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

 

參考

  1. https://istio.io/docs/reference/config/networking/virtual-service/#HTTPFaultInjection
  2. https://istio.io/docs/tasks/traffic-management/fault-injection/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章