Chaos Mesh
Chaos Mesh 是一个开源的云原生混沌工程平台,专为 Kubernetes 设计。它使用 Kubernetes 自定义资源来定义、编排和观察针对工作负载、基础设施、云服务和应用程序的受控故障注入。
Chaos Mesh 是 https://www.cncf.io/ 的孵化项目。如果您的组织希望助力塑造容器化、动态调度和面向微服务的技术发展,请考虑加入 CNCF。
特性
- 广泛的故障覆盖:Pod、网络、DNS、HTTP、I/O、时间、压力、内核、块设备、JVM、物理机(AWS、Azure 和 GCP)故障。
- Kubernetes 原生 API:混沌实验被定义为自定义资源,并通过 Kubernetes API 使用标准 Kubernetes 工具和 RBAC 进行管理。
- 实验编排:
Schedule、Workflow 和 StatusCheck 资源支持周期性实验、串行或并行工作流以及应用健康检查。
- 仪表板:通过 Web UI 和 API 创建、管理和检查实验、调度和工作流。
- 多集群执行:管理远程集群并从管理集群调度支持的混沌实验。
有关每种故障类型的行为和配置,请参见 Chaos Mesh 文档。
架构
Chaos Mesh 有三个主要运行时组件:
- Chaos Controller Manager:监视 Chaos Mesh 资源,通过准入 Webhook 验证请求,调度工作流和实验,并协调故障注入和恢复。
- Chaos Daemon:作为 DaemonSet 在 Kubernetes 节点上运行。它对涉及运行时、进程、网络、文件系统、时钟和内核的故障执行特权节点级和容器级操作。
- Chaos Dashboard:提供用于管理和观察实验的 HTTP API 和 Web 界面。当通过 Kubernetes API 直接管理实验时,它是可选的。
用户通过 Kubernetes API(直接或通过仪表板)创建或更新 Chaos Mesh 资源。Controller Manager 协调期望状态,并在需要时将节点级操作委托给 Chaos Daemon。
有关实现细节,请从 控制器架构指南、命令入口点 或 Helm 图表指南 开始。
快速开始
- 使用 Helm 安装 Chaos Mesh
- 运行混沌实验
- 支持的版本和环境
希望无需设置集群即可试用?在浏览器中运行 交互式 Killercoda playground:在真实的 2 节点 Kubernetes 集群上安装 Chaos Mesh,运行 PodChaos 和 NetworkChaos 实验,探索仪表板,并链接工作流——大约需要 20 分钟。
贡献
有关基本工作流程和特定领域开发指南的链接,请阅读 CONTRIBUTING.md。所有贡献者必须遵守 行为准则。
根据 SECURITY.md 报告安全问题。
采用者
参见 ADOPTERS。
博客
有关 Chaos Mesh 设计与实现、功能、混沌工程、社区更新等的博客。参见 Chaos Mesh 博客。以下是一些推荐的入门博客:
- Chaos Mesh 2.0:迈向混沌工程生态
- Chaos Mesh - 面向 Kubernetes 的系统弹性混沌工程解决方案
- 10 分钟内运行您的第一个混沌实验
- 如何在运行时模拟 I/O 故障
- 在 K8s 中模拟时钟偏差而不影响节点上的其他容器
- 基于 Chaos Mesh 和 Argo 构建自动化测试框架
社区
有关错误、功能请求和其他问题,请通过以下方式联系:
- 在 *** 上关注我们 @chaos_mesh。
- 加入 https://slack.cncf.io/ 工作区的
#project-chaos-mesh 频道。
- 针对此仓库提交 issue 或打开 PR。
社区会议
-
Chaos Mesh 社区月度会议(社区和项目级更新、社区分享/演示、办公时间)
-
时间:每月第四个星期四(除非另有说明)
-
https://community.cncf.io/chaos-mesh-community/
-
https://docs.google.com/document/d/1H8IfmhIJiJ1ltg-XLjqR_P_RaMHUGrl1CzvHnKM_9Sc/edit?usp=sharing
-
Chaos Mesh 开发会议(版本发布、路线图/功能/RFC 规划和讨论、问题分类/讨论等)
-
时间:每两周的星期二(除非另有说明)
-
https://community.cncf.io/chaos-mesh-community/
-
https://docs.google.com/document/d/1s9X6tTOy3OGZaLDZQesGw1BNOrxQfWExjBFIn5irpPE/edit
社区博客
- Grant Tarrant-Fisher: Integrate your Reliability Toolkit with Your World
- Yoshinori Teraoka: Streake: Chaos Mesh によるカオスエンジニアリング
- Sébastien Prud'homme: Chaos Mesh : un générateur de chaos pour Kubernetes
- Craig Morten
- K8s Chaos Dive: Chaos-Mesh Part 1
- K8s Chaos Dive: Chaos-Mesh Part 2
- Ronak Banka: Getting Started with Chaos Mesh and Kubernetes
- kondoumh: Kubernetes ネイティブなカオスエンジニアリングツール Chaos Mesh を使ってみる
- Vadim Tkachenko: https://www.percona.com/blog/2020/11/05/chaosmesh-to-create-chaos-in-kubernetes/
- Hui Zhang: How a Top Game Company Uses Chaos Engineering to Improve Testing
- Anurag Paliwal
- Securing tenant services while using chaos mesh using OPA
- Securing namespaces using restrict authorization feature in chaos mesh
- Pavan Kumar: Chaos Engineering in Kubernetes using Chaos Mesh
- Jessica Cherry: Test your Kubernetes experiments with an open source web interface
- λ.eranga: Chaos Engineering with Chaos Mesh
- Tomáš Kubica: Kubernetes prakticky: zlounství s Chaos Mesh a Azure Chaos Studio
- mend: Chaos Meshで何ができるのか見てみた
社区演讲
- Twain Taylor: Chaos Mesh Simplifies & Organizes Chaos Engineering For Kubernetes
- Saiyam Pathak
- Let's explore chaos mesh
- Chaos Mesh - Chaos Engineering for Kubernetes
- Chaos Mesh 2.0
媒体报道
- CodeZine: オープンソースのカオステストツール「Chaos Mesh 1.0」、一般提供を開始
- @IT atmarkit: Kubernetes 向けカオスエンジニアリングプラットフォーム「Chaos Mesh 1.0」が公開
- Publickey: Kubernetes の Pod やネットワークをわざと落としまくってカオスエンジニアリングのテストができる「Chaos Mesh」がバージョン 1.0 に到達
- InfoQ: Chaos Engineering on Kubernetes : Chaos Mesh Generally Available with v1.0
- TechGenix: Chaos Mesh Promises to Bring Order to Chaos Engineering
许可
Chaos Mesh 采用 Apache License 2.0 许可。参见 LICENSE。
商标