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