K8S下所用的Istio就是检验微服务稳定性的混沌工程开源工具

在K8S上部署的微服务,经常会依赖不受你控制的其他微服务。当两者之间的HTTP交互出现延迟或错误后,你的微服务能否按预期正常工作?应该做一个故障注入实验来检验一下。如果你在K8S上使用了Istio,那么恭喜你,你已经拥有了简单易用的混沌工程开源工具。
官网
https://github.com/istio/istio
一句话介绍
虽然Istio主要作为K8S服务网格,用于连接、保护、控制和观察服务,但在其流量管理功能中也支持故障注入。
关键特性
Istio 可以将HTTP延迟或 HTTP 错误注入任何虚拟服务之间的网络流量中。实验以 Kubernetes manifest形式定义。可以使用现有的 Istio 功能(例如虚拟服务和路由规则)来选择故障注入目标。还可以使用运行状况检查和 Envoy 统计数据来监控故障注入对系统的影响。
故障注入实验利用了 Istio 在网络中的地位来执行实验,而无需添加任何额外的混沌工程工具或功能。
适用平台
K8S
适用场景
如果已经使用了 Istio,那么这可以直接用它在集群上运行混沌实验,而无需部署或学习其他工具。否则,仅仅为了这两种故障注入功能就部署 Istio ,就不值了。
优势
故障注入功能原生内置于 Istio 中。无需额外设置。
实验以简单的 Kubernetes manifest形式表现。
劣势
只有HTTP延迟或 HTTP 错误这两种实验类型。
如果没有使用 Istio,仅仅为了这个故障注入功能而使用它就不值得了。
实验无法在主机上安排和执行,无法深入定制,也无法在 Istio 之外使用。
开源许可证
Apache-2.0 license
Github点赞数
33.5k
最近发布日期与版本
2023.07: Istio 1.18.2
所属项目
CNCF云原生计算基金会项目
参考资料
Istio故障注入官方文档:https://istio.io/latest/docs/tasks/traffic-management/fault-injection/
Istio故障注入实例:https://istiobyexample.dev/fault-injection/
本文参考了Gremlin公司的文章Comparing Chaos Engineering tools https://www.gremlin.com/community/tutorials/chaos-engineering-tools-comparison/#istio
在K8S下检验微服务稳定性,还有什么好用的开源工具?你还希望我聊有关混沌工程的其他什么新话题?欢迎在评论区留言。我会仔细阅读每一条留言。期待听到你的声音。
如果觉得本文对你有帮助,欢迎*点赞*,点击在读,并*转发*给其他志同道合的小伙伴。
企业生意好,系统运行稳。你所阅读的文章,来自“吾真本说混沌工程”知乎专栏。