跳到主要内容

破而后立
建设性地解构与优化你的系统

Chaos Mesh 为 Kubernetes 带来了各种类型的故障模拟,并拥有强大的故障场景编排能力。它可以帮助你方便地模拟在开发、测试和生产环境中可能发生的各种异常情况,并发现系统中潜在的问题。

使用以下命令尝试一下 👇

Chaos Mesh 的用户

APISIX
Authzed
Celo
China Everbright Bank
Dailymotion
DataStax
Digital China
Fuxi Lab
juiceFS
KingNet
Maycur
Meituan
NETSTARS
Percona
PingCAP
Pulsar
Qihoo 360
Qiniu Cloud
RabbitMQ
SHAREit
S.J. Distributors
Tencent
Vald
WeBank
Xpeng

云原生 + 混沌工程变得简单直接

基于混沌工程的原则,Chaos Mesh 将真实世界的事件抽象成可以直接应用的对象,隐藏了琐碎的细节。

为 Kubernetes 设计

在 Kubernetes 领域,CustomResourceDefinition (CRD) 是实现自定义资源的成熟解决方案。 Chaos Mesh 借助 CRD 实现了与 Kubernetes 生态系统的自然融合。

易于使用

无需特殊依赖,Chaos Mesh可以轻松地直接部署在Kubernetes集群上,包括 minikubekind

  • 无需修改应用的部署逻辑,拥有在生产环境中进行混沌实验的能力。
  • 通过仪表盘快速创建混沌实验,允许用户实时观察实验的状态并快速回滚任何注入的故障。

灵活的范围

Chaos Mesh 提供了多种过滤规则,允许根据标签、注释等选择注入目标。它们统称为选择器。

此外,用户还可以设置命名空间白名单,以更大程度地控制实验的“爆炸半径”。

安全至上

默认启用基于角色的访问控制(RBAC)以限制恶意操作。用户必须被授予特定权限才能访问仪表板。

多样化的故障类型

Chaos Mesh 起初从分布式系统的角度出发,充分考虑了其可能出现的故障,从而提供更全面、更细粒度的故障类型来帮助用户对网络、磁盘、文件系统、操作系统等进行故障注入。

Chaos Category

PodChaos / pod-failure


apiVersion: chaos-mesh.org/v1alpha1
kind: PodChaos
metadata:
name: pod-failure-example
namespace: chaos-mesh
spec:
selector:
labelSelectors:
'environment': 'staging'
mode: one
action: pod-failure
duration: 30s

NetworkChaos / delay


apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
name: network-delay-example
spec:
selector:
namespaces:
- default
labelSelectors:
'env': 'production'
mode: one
action: delay
delay:
latency: '10ms'
correlation: '100'
jitter: '0ms'

StressChaos


apiVersion: chaos-mesh.org/v1alpha1
kind: StressChaos
metadata:
name: mem-stress
namespace: chaos-mesh
spec:
selector:
namespaces:
- 'default'
labelSelectors:
'env': 'test'
mode: one
stressors:
memory:
workers: 2
size: '128MB'

使用工作流编排复杂的故障场景

现实世界中的故障通常不是孤立的原因造成的。Chaos Mesh 内置了工作流,允许你根据需要串行或并行地进行实验,以构建符合架构的演练。

挂起

您还可以使用挂起节点来模拟临时恢复。

状态检查

您还可以使用自定义的状态检查来告知集群状态。

开始创建 →
实验性功能

认识Chaosd:物理机混沌工具箱

即使你没有使用 Kubernetes,你仍然可以利用 Chaos Mesh 的功能。我们其中一个实验性工具 Chaosd 专门用于在物理机上进行混沌测试。此外,你可以在 Chaos Mesh 中使用 PhysicalMachineChaos 来远程调用 Chaosd,从而在物理机上进行实验。

了解更多 →

共建社区,共同前行

加入社区和维护者及其他用户一起交流。你的建议可以让 Chaos Mesh 变得更好。

成为 Chaos Mesh 未来建设的贡献者。

Logo OctocatGitHub

遇到任何问题?请随时联系我们寻求帮助。

Slack

通过我们的 Slack 频道 (#project-chaos-mesh) 与其他用户联系。

加入 Slack 频道

Chaos Mesh is a Cloud Native Computing Foundation incubating project.