Chaos Mesh  - 在 Kubernetes 上进行混沌测试

花样年华 2020-03-24 12:36:48

Chaos Mesh 是一个云原生的混沌工程(Chaos Engineering)平台,可在 Kubernetes 环境中进行混沌测试。

Chaos Mesh 主要包含两大组件:

  • Chaos Operator:核心组件
  • Chaos Dashboard:可视化面板,显示混沌实验对系统在线服务的影响

Chaos Operator 以一种可管理的方式将故障注入到应用程序和 Kubernetes 基础结构中,从而为混沌实验和自动编排提供了简单的自定义场景。主要包含三个组成部分:

  • Controller-manager:用于计划和管理 CRD 对象的生命周期
  • Chaos-daemon:在特定节点上以特权系统权限作为守护进程运行网络与 Cgroup 等
  • Sidecar:一种特殊类型的容器,它由 webhook-server 动态注入到目标 Pod 中,可用于劫持应用程序容器的 I/O。

Chaos Operator 使用自定义资源定义(Custom Resource Definition,CRD)定义混沌对象。当前实现支持用于故障注入的 CRD 对象 PodChaos、NetworkChaos、IOChaos 和 TimeChaos,它们对应于以下主要操作:

  • pod-kill:模拟 Kubernetes Pod 被 kill。
  • pod-failure:模拟 Kubernetes Pod 持续不可用,可以用来模拟节点宕机不可用场景。
  • network-delay:模拟网络延迟。
  • network-loss:模拟网络丢包。
  • network-duplication:模拟网络包重复。
  • network-corrupt:模拟网络包损坏。
  • network-partition:模拟网络分区。
  • I/O delay:模拟文件系统 I/O 延迟。
  • I/O errno:模拟文件系统 I/O 错误 。
    公告

    《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

    课程地址:https://www.shiyanlou.com/courses/1436
    9折优惠邀请码: ZHwfIjb1

    该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。