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/

你可能感兴趣的:(kubernetes,云计算)