2 月 16 日,cncf 技术监督委员会 (toc) 宣布 kubernetes 混沌工程平台 成为 cncf 的孵化项目。
chaos mesh 最初是为开源分布式数据库 tidb 的测试平台创建的,作为通用的混沌工程平台,在 kubernetes 环境中协调混沌实验。该平台通过帮助识别潜在的故障点,有助于确保 kubernetes 基础设施能够承受意外的中断。目前,chaos mesh 已经在 github 上开源,拥有 4.5k stars,项目地址为:。
据悉,自 2020 年 7 月被 cncf 沙箱接受以来,chaos mesh 已经发布了两个主要版本(v1.0 和 v2.0)和 30 个小版本,在可观察性、功能和安全性方面带来了显著的改进。
chaos mesh 的基本工作流原理图
据,chaos mesh 的亮点功能包括:
混沌仪表板,通过 web ui 管理和监控混沌实验的可视化工具。
原生的工作流引擎,定义混沌场景来管理一组混沌实验和应用程序的状态检查。
更强大和全面的混沌模拟,具体包括 stresschaos、dnschaos、jvmchaos、awschaos、gcpchaos、httpchaos 等。
基于 kubernetes rbac 权限策略的授权机制。
根据 的介绍,chaos mesh 的整体工作流如下:
用户通过 yaml 文件或是 kubernetes 客户端往 kubernetes api server 创建或更新 chaos 对象。
chaos-mesh 通过 watch api server 中的 chaos 对象创建更新或删除事件,维护具体 chaos 实验的运行以及生命周期,在这个过程中 controller-manager、chaos-daemon 以及 sidecar 容器协同工作,共同提供错误注入的能力。
admission-webhooks 是用来接收准入请求的 http 回调服务,当收到 pod 创建请求,会动态修改待创建的 pod 对象,例如注入 sidecar 容器到 pod 中。第 3 步也可以发生在第 2 步之前,在应用创建的时候运行。
chaos mesh 采用 kubernetes 架构,使用 kubernetes 的 custom resource definitions (crd) 来定义混沌对象。它还可以与 argo、grafana 和 prometheus 等其他云原生项目紧密集成,使混沌体验更易于管理、可定制和可观察。
评论