基本功能
故障注入是混沌实验的核心。Chaos Mesh 充分考虑分布式系统可能出现的故障,提供全面、细粒度的故障类型,分为基础资源类型故障、平台类型故障和应用层故障三大类。
- 基础资源类型故障:
- PodChaos:模拟 Pod 故障,例如 Pod 节点重启、Pod 持续不可用,以及特定 Pod 中的某些容器故障。
- :模拟网络故障,例如网络延迟、网络丢包、包乱序、各类网络分区。
- HTTPChaos:模拟 HTTP 通信故障,例如 HTTP 通信延迟。
- :模拟 CPU 抢占或内存抢占场景。
- IOChaos:模拟具体某个应用的文件 I/O 故障,例如 I/O 延迟、读写失败。
- :模拟时间跳动异常。
- KernelChaos:模拟内核故障,例如应用内存分配异常。
- 平台类型故障:
- :模拟 AWS 平台故障,例如 AWS 节点重启。
- 应用层故障:
- JVMChaos:模拟 JVM 应用故障,例如函数调用延迟。
混沌实验场景由一组混沌实验和应用状态检查组成,旨在帮助用户在平台上实现混沌工程闭环。
目前混沌实验场景提供的功能有:
- 编排串行混沌实验
- 编排并行混沌实验
- 支持状态检查步骤
- 支持中途暂停混沌实验
- 支持使用 YAML 文件定义和管理混沌实验场景
具体的实验场景配置,参考具体。
Chaos Mesh 通过 Kubernetes 原生的 RBAC(基于角色的权限控制)功能对权限进行管理。
此外 Chaos Mesh 还支持通过设置 Namespace Annotation 的方式开启特定 Namespace 下混沌实验的权限,进一步保障混沌实验的可控性。