写点什么

Kubernetes 上的混沌工程:Chaos Mesh 1.0 GA 发布

2020 年 10 月 31 日

Kubernetes上的混沌工程:Chaos Mesh 1.0 GA发布

Chaos Mesh 1.0 于 2020 年 7 月成为 CNCF 沙箱项目,随后,Chaos Mesh 团队宣布了其通用可用性(GA)。Chaos Mesh 是一个用于在 Kubernetes 应用程序上进行混沌工程实验的工具。


Chaos Mesh 使用标准的 CDR 进行对象定义,还提供了一个用于管理和监控混沌工程实验的仪表盘。仪表盘可用于“定义混沌实验的范围、指定混沌注入的类型、定义调度规则,并观察混沌实验的结果”。Chaos Mesh 还提供了一个 Grafana 插件,可以查看混沌工程实验的实时指标。这个工具涵盖了“Pod、网络、系统 I/O 和内核”的故障注入。


InfoQ 采访了 Chaos Mesh 的维护者和全职开发人员 Keao Yang,了解更多的信息。


混沌实验可以在 Chaos Mesh 中使用 YAML 来指定。可以注入的故障类型包括 Pod 故障、网络分区故障、虚拟内存压力源、通过系统调用修改系统时间以及 I/O 延迟。Chaos Mesh 还可以用于模拟跨多个数据中心的网络延迟。Chaos Mesh 主要包含了两个运行组件——一个中央控制器管理器和一个 DaemonSet,它在每个节点上运行一个 Pod,作为代理。为了限制测试中受影响的应用程序,并防止混沌实验影响关键应用程序,它提供了名称空间级别的权限和受保护的名称空间。



图像来源:https://raw.githubusercontent.com/chaos-mesh/chaos-mesh/master/static/chaos-mesh.svg


Chaos Mesh 是从一个针对分布式数据库TiDB的测试框架发展而来的。Yang 解释说:“我们相信我们以前的经验(关于 TiDB 测试)不仅让 TiDB 更加稳定,这也是我们创建 Chaos Mesh 的原因。Chaos Mesh 生来就是通用的,被设计成可以在任何一个云平台上运行,也可以用来测试云端的任何一个软件。”


Yang 说,Chaos Mesh 不依赖特定的云特性。它“只使用了 Kubernetes API 和 Linux 内核的基本功能”,并补充道:


根据用户的报告,Chaos Mesh 可以很自然地在裸机集群和大多数云平台上运行。但是,对于一些云平台(如 OpenShift),需要特殊的特权设置。我们正在编写文档来记录这些配置。


在回答 Chaos Mesh 如何在内部注入故障时,Yang 解释说:


具体实现取决于“故障”类型。有一些很简单,例如,Chaos Mesh 使用 Kubernetes API 来杀死 Pod 并实现 PodChaos。对于其他一些类型的故障,Chaos Mesh 会向相关节点上的守护进程发送 grpc 请求,守护进程会进入相应的 network/pid/mnt/…命名空间和 cgroup,并运行一些命令(如 iptables)来注入故障。


此外,Yang 还说,“在运行时注入故障和限制混沌的范围可能是一个挑战。例如,在 Linux 5.6 之前没有时间名称空间这样的东西,而且每个进程都共享同一个时钟。对于这种混沌,实现并不是那么简单,而且真的很难用一句话说清楚”。另一篇文章描述了 TimeChaos 的实现——它模拟时钟偏差。


关于 Chaos Mesh 的近期路线图,Yang 说:


我们正试图将 Chaos Mesh 扩展为一个“平台”,这意味着它有望能够编排混沌实验,定义复杂的混沌场景,并为混沌生成报告。另一个重要的特性是支持仪表盘的访问控制。


Kubernetes 上的其他混沌工程框架有LitmusGremlinKubeInvaders。在写这篇文章时,Chaos Mesh 需要 Kubernetes v 1.12 或更高版本,可以使用提供的 shell 脚本或 Helm Chart 来安装。Chaos Mesh 的源代码可以在GitHub上找到。


原文链接


Chaos Engineering on Kubernetes : Chaos Mesh Generally Available with v1.0


2020 年 10 月 31 日 08:00989

评论

发布
暂无评论
发现更多内容

架构师第十三周总结

_

总结 架构师第十三周

架构师训练营第四周”系统架构“总结

随秋

极客大学架构师训练营

架构师训练营第 1 期 - 第 13 周课后练习

Anyou Liu

极客大学架构师训练营

Week 13 作業

Christy LAW

系统性能优化案例(秒杀系统)

积极&丧

《Python中的竞争性编程:128种提高编码技能的算法》PDF

计算机与AI

Python 算法

架构师训练营 1 期第 13 周:数据应用(二)- 总结

piercebn

极客大学架构师训练营

第十三周作业 (作业二)

Geek_83908e

架构师一期

第十三周作业 (作业一)

Geek_83908e

架构师一期

NO.001-简说Java并发编程史

葛一凡

第十三周 数据应用 (二)

9527

架构师训练营第四周”系统架构“作业

随秋

极客大学架构师训练营

万字庖解区块链跨链技术

CECBC区块链专委会

区块链

联邦学习与安全多方计算

DataFunTalk

学习 AI

架构师训练营第四周课后作业

万有引力

Java架构速成笔记:五大专题,1345页考点 看完直接收获腾讯、京东、滴滴offer

比伯

Java 编程 架构 面试 计算机

极客大学 - 架构师训练营 第十三周作业

9527

Week 13 學習總結

Christy LAW

JVM 垃圾回收原理简述

Mars

天下武功,唯”拆“不破之架构篇一 | 技术人应知的创新思维模型 (7)

Alan

架构 个人成长 思维 技术人应知的创新思维模型 28天写作

Week9总结

lggl

作业

架构师训练营 第九周课程

文江

Week9作业

lggl

百分点助力常州科教城上线两大平台 打造国际智慧创新城

百分点认知智能实验室

AI 智慧城市

世界之书:《大国政治的悲剧》与美国独行

lidaobing

大国政治的悲剧 28天写作

生产环境全链路压测建设历程14:核心链路的改造

数列科技杨德华

全链路压测 七日更

架构师训练营 1 期第 13 周:数据应用(二)- 作业

piercebn

极客大学架构师训练营

架构师第十三周作业

_

极客大学架构师训练营 第十三周

从“断臂求生”到一骑绝尘,航运巨头马士基如何利用区块链技术力挽狂澜?

CECBC区块链专委会

航运

封装 axios 取消重复请求

360技术

Web 开发

AWS 发布 180 项新服务与功能

亚马逊AWS官方博客

云计算 AWS

Kubernetes上的混沌工程:Chaos Mesh 1.0 GA发布-InfoQ