Chaos Mesh 概述
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
本文档介绍 Chaos Mesh 的概念、使用场景、核心优势以及架构设计。
Chaos Mesh 概述
Chaos Mesh 是一个开源的云原生混沌工程平台,提供多样化的故障模拟能力,并具备强大的故障场景编排功能。
通过 Chaos Mesh,您可以在开发、测试和生产环境中便捷地模拟现实世界中可能出现的各类异常,从而发现系统中的潜在问题。为降低混沌工程门槛,Chaos Mesh 提供了可视化操作界面。您可在 Web UI 上轻松设计混沌场景并监控实验状态。
核心优势
作为行业领先的混沌测试平台,Chaos Mesh 具备以下核心优势:
-
核心能力稳定:源自 TiDB 核心测试平台,从初始版本即继承了 TiDB 丰富的测试经验
-
充分验证:已被腾讯、美团等众多企业采用,并应用于 Apache APISIX、RabbitMQ 等知名分布式系统的测试体系
-
易用性强:通过图形化操作和基于 Kubernetes 的使用方式实现全面自动化
-
云原生支持:依托强大的自动化能力完美适配 Kubernetes 环境
-
故障场景丰富:覆盖分布式系统测试中绝大部分基础故障模拟场景
-
编排能力灵活:支持在平台上设计包含混合实验和应用状态检查的混沌实验场景
-
安全性高:采用多层安全控制设计,提供高级别的安全保障
-
易于扩展:可轻松添加新的故障测试类型和功能
架构概述
Chaos Mesh 基于 Kubernetes CRD(自定义资源定义)构建。为管理不同混沌实验,平台根据故障类型定义了多种 CRD 类型,并为不同 CRD 对象实现了独立的控制器。Chaos Mesh 主要包含三大组件:
-
Chaos Dashboard:可视化组件,提供用户友好的 Web 界面用于操作和观察混沌实验,同时集成了 RBAC 权限管理机制
-
Chaos Controller Manager:核心逻辑组件,主要负责混沌实验的调度与管理,包含 Workflow Controller、Scheduler Controller 及各类故障控制器
-
Chaos Daemon:核心执行组件,以 DaemonSet 模式运行(默认具备特权权限,可手动禁用),通过侵入目标 Pod 命名空间干扰特定网络设备、文件系统和内核

如上图所示,Chaos Mesh 整体架构自上而下可分为三部分:
-
用户输入与观察:用户操作(User)通过 Kubernetes API Server 接收,用户不直接与 Chaos Controller Manager 交互。所有操作最终体现为混沌资源变更(如 NetworkChaos 资源变更)
-
监控资源变更、调度工作流并执行混沌实验:Chaos Controller Manager 仅接收来自 Kubernetes API Server 的事件。这些事件描述了混沌资源的变更,例如新工作流对象的创建或混沌对象的生成。
-
注入特定节点故障:Chaos Daemon 组件主要负责接收来自 Chaos Controller Manager 的命令,侵入目标 Pod 的命名空间,执行具体的故障注入操作。例如设置 TC 网络规则、启动 stress-ng 进程抢占 CPU 或内存资源。