混沌工程之Chaos Mesh(一)

混沌工程之Chaos Mesh(一)

解决方案goocz2025-01-11 14:22:0125A+A-

Chaos Mesh是什么?它是一个云原生的混沌测试平台,它提供在 Kubernetes 平台上进行混沌测试的能力,最近在逛github的时候看见了混沌测试技术,自己本身也是一名测试工作者,好奇中就研究了一下混沌工程相关知识。

Chaos Mesh的整体架构如下:



我个人习惯学习新知识首先要知道它的工作原理,那么 接下来我们首先看一下Chaos Mesh 的工作原理

1.Controller-manager 目前 controller-manager 可以分为两部分,一部分 controllers 用于调度和管理 CRD 对象实例,另一部分为 admission-webhooks 动态的给 Pod 注入 sidecar 容器。

2.Chaos-daemon Chaos-daemon 以 daemonset 的方式运行,并具有 Privileged 权限,Chaos-daemon 可以操作具体 Node 节点上网络设备以及 Cgroup 等。

3.Sidecar Sidecar contianer 是一类特殊的容器,由 admission-webhooks 动态的注入到目标 Pod 中,目前在 Chaos Mesh 中实现了 chaosfs sidecar 容器,chaosfs 容器内会运行 fuse-daemon,用来劫持应用容器的 I/O 操作。

接着看一下Chaos Mesh的工作流程

1.用户通过 YAML 文件或是 Kubernetes 客户端往 Kubernetes API Server 创建或更新 Chaos 对象。

2.Chaos-mesh 通过 watch API Server 中的 Chaos 对象创建更新或删除事件,维护具体 Chaos 实验的运行以及生命周期,在这个过程中 controller-manager、chaos-daemon 以及 sidecar 容器协同工作,共同提供错误注入的能力。

3.Admission-webhooks 是用来接收准入请求的 HTTP 回调服务,当收到 Pod 创建请求,会动态修改待创建的 Pod 对象。

最后 我们来看一下Chaos Mesh能做什么

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 错误

总结:今天主要介绍了一下Chaos Mesh的工作原理,工作流程以及它能做的事情


最最后欢迎大家关注我的微信公众号



点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5