让云原生 + 混沌工程变得简单直接
基于混沌工程的原则,Chaos Mesh 将真实世界的事件抽象成可以直接应用的对象,隐藏了琐碎的细节。
为 Kubernetes 设计
在 Kubernetes 领域,CustomResourceDefinition (CRD) 是实现自定义资源的成熟解决方案。 Chaos Mesh 借助 CRD 实现了与 Kubernetes 生态系统的自然融合。
灵活的范围
Chaos Mesh 提供了多种过滤规则,允许根据标签、注释等选择注入目标。它们统称为选择器 。
此外,用户还可以设置命名空间白名单,以更大程度地控制实验的“爆炸半径”。
安全至上
默认启用基于角色的访问控制(RBAC)以限制恶意操作。用户必须被授予特定权限才能访问仪表板。
多样化的故障类型
Chaos Mesh 起初从分布式系统的角度出发,充分考虑了其可能出现的故障,从而提供更全面、更细粒度的故障类型来帮助用户对网络、磁盘、文件系统、操作系统等进行故障注入。
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 未来建设的贡献者。
GitHub遇到任何问题?请随时联系我们寻求帮助。
通过我们的 Slack 频道 (#project-chaos-mesh) 与其他用户联系。
加入 Slack 频道Chaos Mesh is a Cloud Native Computing Foundation incubating project.