ChaosMesh是一个云原生的混沌工程(ChaosEngineering)平台,可在Kubernetes环境中进行混沌测试。
ChaosMesh主要包含两大组件:
ChaosOperator:核心组件ChaosDashboard:可视化面板,显示混沌实验对系统在线服务的影响ChaosOperator以一种可管理的方式将故障注入到应用程序和Kubernetes基础结构中,从而为混沌实验和自动编排提供了简单的自定义场景。主要包含三个组成部分:
Controller-manager:用于计划和管理CRD对象的生命周期Chaos-daemon:在特定节点上以特权系统权限作为守护进程运行网络与Cgroup等Sidecar:一种特殊类型的容器,它由webhook-server动态注入到目标Pod中,可用于劫持应用程序容器的I/O。ChaosOperator 使用自定义资源定义(CustomResourceDefinition,CRD)定义混沌对象。当前实现支持用于故障注入的 CRD对象 PodChaos、NetworkChaos、IOChaos和TimeChaos,它们对应于以下主要操作:
pod-kill:模拟KubernetesPod被kill。pod-failure:模拟KubernetesPod持续不可用,可以用来模拟节点宕机不可用场景。network-delay:模拟网络延迟。network-loss:模拟网络丢包。network-duplication:模拟网络包重复。network-corrupt:模拟网络包损坏。network-partition:模拟网络分区。I/Odelay:模拟文件系统I/O延迟。I/Oerrno:模拟文件系统I/O错误。
评论