[转帖]没 K8s 用不了 Chaos Mesh?试试 Chaosd

k8s,不了,chaos,mesh,试试,chaosd · 浏览次数 : 0

小编点评

Chaosd 是 Chaos Mesh 提供的一款混沌工程测试工具,用于在物理机环境上注入故障,并提供故障恢复功能。它支持多种模式,可用于命令行或服务使用。 **主要优点:** * 易用性强 * 丰富故障类型 * 支持多种模式 * 故障恢复功能 **使用步骤:** 1. 下载 Chaosd 2. 创建实验 3. 检查实验效果 4. 恢复实验运行 **注意:** * Chaosd 需要 K8s 环境 * Chaosd 提供的故障注入功能目前只支持六大故障注入功能,需要通过其他工具扩展支持。

正文

https://cn.pingcap.com/blog/cannot-use-chaosmesh-without-k8s-then-try-chaosd

 

Chaosd 是什么?

相信大家对 Chaos Mesh 已经比较了解了:支持多种类型的混沌实验,有 Dashboard web 界面直接管理实验,TiDB 使用它保障产品质量,还有小鹏汽车、网易、某银行等众多用户。这么好的工具当然想亲手试一试,动手的时候发现:没有 K8s 环境用不了!

这是因为 Chaos Mesh 是云原生的混沌工程测试平台,专门为 K8s 设计的。然而你的应用还是用物理机环境部署的,太遗憾了,有故障的时候看告警邮件吧。

请留步,试试 Chaosd?

可能你还是第一次听说 Chaosd,它是 Chaos Mesh 提供的一款混沌工程测试工具,用于在物理机环境上注入故障,并提供故障恢复功能。看它的名子是不是和 Chaos Mesh 中的组件 chaos-daemon 比较相似?是的,它正是由 chaos-daemon 演化而来,并针对物理机的特点增加了一些专门的混沌实验功能。

Chaosd 有什么优势

Chaosd 具有以下这些优点:

  • 易用性强:输入简单的 Chaosd 命令即可创建混沌实验,并对实验进行管理。

  • 故障类型丰富:在物理机的不同层次、不同类型上都提供了故障注入的功能,包括进程、网络、JVM、压力、磁盘、主机等,且更多的功能在不断扩展中。

  • 支持多种模式:Chaosd 既可作为命令行工具使用,也可以作为服务使用,满足不同场景的使用需求。

说了这么多,让我们来试一试。最近我们刚发布了 v1.0.1 版本,就用这个版本来简单演示一下。

Chaosd 的使用

1. 下载

首先要下载 Chaosd,执行以下命令:

curl -fsSL -o chaosd-v1.0.1-linux-amd64.tar.gz https://mirrors.chaos-mesh.org/chaosd-v1.0.1-linux-amd64.tar.gz

解压这个文件,可以看到它包含一个 chaosd 文件和一个 tools 文件夹。chaosd 是工具的入口;tools 文件夹下面包含执行混沌实验所需要的一些工具,包括 stress-ng(压力场景)、byteman(JVM 故障)、PortOccupyTool(网络故障占用端口)等。

2. 创建实验

我们以创建一个网络类型的混沌实验为例,注入故障,使服务器无法访问 chaos-mesh.org,执行以下命令:

sudo ./chaosd attack network loss --percent 100 --hostname chaos-mesh.org --device ens33

Attack network successfully, uid: c55a84c5-c181-426b-ae31-99c8d4615dbe

简单来说,这个命令的作用是:通过 ens33 网卡向 chaos-mesh.org 发送或者接收的网络包会 100% 丢失。使用 sudo 是因为该实验会修改网络规则, 需要 root 权限。

此外,别忘了保存好这个实验的 uid,用于后续的实验恢复。

3. 检查实验效果

让我们通过 ping 命令来检查是否可以正常访问 chaos-mesh.org:

ping chaos-mesh.org

PING chaos-mesh.org (185.199.109.153) 56(84) bytes of data.

^C

--- chaos-mesh.org ping statistics ---

2 packets transmitted, 0 received, 100% packet loss, time 1021ms

执行命令后会卡住,迟迟得不到响应,按 CTRL C 退出后可以看到 ping 的统计信息:100% packet loss。说明我们的实验确实生效了。

4. 恢复实验

运行以下命令恢复实验:

sudo ./chaosd recover c55a84c5-c181-426b-ae31-99c8d4615dbe

Recover c55a84c5-c181-426b-ae31-99c8d4615dbe successfully

恢复实验时也会修改网络规则,因此也需要使用 sudo。在执行完成后,可以再 ping chaos-mesh.org 确认网络已经恢复。

后续的规划

提高易用性 & 平台化

从上面的使用示例中可以看到,Chaosd 用起来还是挺简单的,通过命令行就可以创建实验。但是肯定有些人还不太满意:有 Dashboard web 界面能用吗? 答案是:目前还没有,但是已经在着手开发了。

我们会继续加强它的易用性,提供 Dashboard web 管理功能,不仅可以管理物理机上 Chaosd 的实验,还可以管理 Chaos Mesh 上的实验,这样就把物理机环境和 K8s 环境的混沌实验统一管理起来。在去年的 TiDB Hackathon 中我们简单做了一个 demo,架构如下: chaosmesh.png

详细介绍可以参考 Chaos Mesh® 的 Chaos Engineering as a Service 探索之路 

更多的故障注入功能

目前 Chaosd 提供了进程、网络、JVM、压力、磁盘、主机总共六大故障注入功能,但是仍然需要继续拓展。后续我们计划将 Chaos Mesh 在 K8s 环境支持的一些故障注入功能在 Chaosd 中实现,包括 HTTP、IO 等。

大家可以通过 Chaosd 的 使用文档 ,尝试创建一些混沌实验来体验一下。在使用过程中遇到什么问题,或者有新的需求,都可以提 issue 来反馈。

与[转帖]没 K8s 用不了 Chaos Mesh?试试 Chaosd相似的内容:

[转帖]没 K8s 用不了 Chaos Mesh?试试 Chaosd

https://cn.pingcap.com/blog/cannot-use-chaosmesh-without-k8s-then-try-chaosd Chaosd 是什么? 相信大家对 Chaos Mesh 已经比较了解了:支持多种类型的混沌实验,有 Dashboard web 界面直接管理实验

[转帖]强大到没朋友的mysql-shell及插件

强大到没朋友的mysql-shell及插件 https://cloud.tencent.com/developer/article/1676131?areaSource=&traceId= mysql-shell 是官方出品的运维相关小工具, 目前已经具备很多功能。如果再配合大佬写的插件,简直强大到

[转帖]记druid 连接池没满,但超时问题 GetConnectionTimeoutException active 5, maxActive 100

记druid 连接池没满,但超时问题 GetConnectionTimeoutException active 5, maxActive 100 问题说明 线上服务突然出现报错,通过日志查找发现是因为服务升级导致压力集中到某个节点上,出现连接获取超时导致的。 从日志中也找到了异常。 异常信息: co

【转帖】调教LLaMA类模型没那么难,LoRA将模型微调缩减到几小时

https://www.thepaper.cn/newsDetail_forward_23250236 LoRA 微调方法,随着大模型的出现而走红。 最近几个月,ChatGPT 等一系列大语言模型(LLM)相继出现,随之而来的是算力紧缺日益严重。虽然人人都想打造专属于自己的大模型,但是能负担得起上亿

[转帖]是的你没看错,HTTP3来了

https://www.jianshu.com/p/288ce6a8ab88 简介 很多小伙伴可能还沉浸在HTTP1.1的世界无法自拔,但是时代的洪流已经带领我们来到了HTTP3的世界了。是的,你在桥上看风景,而桥边的房子上有人正在看你。 为了不被时代所抛弃,今天给大家讲解一下HTTP3的新特性。

[转帖]Prometheus监控系统存储容量优化攻略,让你的数据安心保存!

云原生监控领域不可撼动,Prometheus 是不是就没缺点?显然不是。 一个软件如果什么问题都想解决,就会导致什么问题都解决不好。所以Prometheus 也存在不足,广受诟病的问题就是 单机存储不好扩展。 1 真的需要扩展容量吗? 大部分场景其实不需要扩展,因为一般的数据量压根达不到 Prome

[转帖]perf学习-linux自带性能分析工具

目前在做性能分析的事情,之前没怎么接触perf,找了几篇文章梳理了一下,按照问题的形式记录在这里。 方便自己查看。 什么是perf? linux性能调优工具,32内核以上自带的工具,软件性能分析。在2.6.31及后续版本的Linux内核里,安装perf非常的容易。 几乎能够处理所有与性能相关的事件。

[转帖]perf学习-linux自带性能分析工具

目前在做性能分析的事情,之前没怎么接触perf,找了几篇文章梳理了一下,按照问题的形式记录在这里。 方便自己查看。 什么是perf? linux性能调优工具,32内核以上自带的工具,软件性能分析。在2.6.31及后续版本的Linux内核里,安装perf非常的容易。 几乎能够处理所有与性能相关的事件。

[转帖]从DDR到DDR4,内存核心频率基本上就没太大的进步!

https://zhuanlan.zhihu.com/p/84194049 从2001年DDR内存面世以来发展到2019年的今天,已经走过了DDR、DDR2、DDR3、DDR4四个大的规格时代了(DDR5现在也出来了)。内存的工作频率也从DDR时代的266MHz进化到了今天的3200MHz。这个频率

[转帖]使用JAYDEBEAPI同时连接两个不同数据库(ORACLE+MYSQL)的问题

jaydebeapi 同时连接两种数据库 在使用jaydebeapi只连接一种数据库时,是没问题的,但是如果需要同时连接两种数据库,比如同时连接oracle和mysql 例如以下测试代码: import jaydebeapi ##使用jdbc驱动连接数据库 import pandas as pd d