混沌实施工具ChaosBlade实践

混沌实施⼯具ChaosBlade实践
项⽬介绍
ChaosBlade 是阿⾥巴巴开源的混沌⼯程原理和混沌实验模型的实验注⼊⼯具。
ChaosBlade 使⽤⽐较简单,⽽且⽀持丰富的实验场景,场景包括:
基础资源:⽐如 CPU、内存、⽹络、磁盘、进程等实验场景;
Java 应⽤:⽐如数据库、缓存、消息、JVM 本⾝、微服务等,还可以指定任意类⽅法注⼊各种复杂的实验场景;
C++ 应⽤:⽐如指定任意⽅法或某⾏代码注⼊延迟、变量和返回值篡改等实验场景;
Docker 容器:⽐如杀容器、容器内 CPU、内存、⽹络、磁盘、进程等实验场景;
云原⽣平台:⽐如 Kubernetes 平台节点上 CPU、内存、⽹络、磁盘、进程实验场景,Pod ⽹络和 Pod 本⾝实验场景如杀 Pod,容器的实验场景如上述的 Docker 容器实验场景;
将场景按领域实现封装成⼀个个单独的项⽬,不仅可以使领域内场景标准化实现,⽽且⾮常⽅便场景⽔
平和垂直扩展,通过遵循混沌实验模型,实现 chaosblade cli 统⼀调⽤。⽬前包含的项⽬如下:
:混沌实验管理⼯具,包含创建实验、销毁实验、查询实验、实验环境准备、实验环境撤销等命令,是混沌实验的执⾏⼯具,执⾏⽅式包含 CLI 和 HTTP 两种。提供完善的命令、实验场景、场景参数说明,操作简洁清晰。
: 混沌实验模型 Golang 语⾔定义,便于使⽤ Golang 语⾔实现的场景都基于此规范便捷实现。
: 基础资源实验场景实现。
: Docker 容器实验场景实现,通过调⽤ Docker API 标准化实现。
: Kubernetes 平台实验场景实现,将混沌实验通过 Kubernetes 标准的 CRD ⽅式定义,很⽅便的使⽤ Kubernetes 资源操作的⽅式来创建、更新、删除实验场景,包括使⽤ kubectl、client-go 等⽅式执⾏,⽽且还可以使⽤上述的 chaosblade cli ⼯具执⾏。
: Java 应⽤实验场景实现,使⽤ Java Agent 技术动态挂载,⽆需任何接⼊,零成本使⽤,⽽且⽀持卸载,完全回收 Agent 创建的各种资源。
: C++ 应⽤实验场景实现,使⽤ GDB 技术实现⽅法、代码⾏级别的实验场景注⼊。
下载 chaosblade
获取 chaosblade 最新的  包,⽬前⽀持的平台是 linux/amd64 和 darwin/64,下载对应平台的包。
下载完成后直接解压,不⽤编译。
使⽤ chaosblade
进⼊解压后的⽂件夹,可以看到以下内容:
├── bin
│├── chaos_burncpu
│├── chaos_burnio
│├── chaos_changedns
│├── chaos_delaynetwork
海量信息存储│├── chaos_dropnetwork
│├── chaos_filldisk
台海问题
│├── chaos_killprocess
│├── chaos_lossnetwork
│├── jvm.spec.yaml
│└── tools.jar
├── blade
└── lib
└── sandbox
其中 blade 是可执⾏⽂件,即 chaosblade ⼯具的 cli,混沌实验执⾏的⼯具。执⾏ ./blade help 可以查看⽀持命令有哪些执⾏第⼀个混沌实验
园林设计我们拿 CPU 满载(CPU 使⽤率 100%) 演练场景举例(!!注意,切勿在⽣产系统机器上执⾏),执⾏以下命令实施实验:./blade create cpu fullload
中国产品质量法执⾏结果返回:
{"code":200,"success":true,"result":"1f0baf517cdf8979"}
通过 top 命令查看 CPU 使⽤率
可以看出cpu已经飙升上来了。此时命令已经⽣效,停⽌混沌实验,执⾏:
管理观察.
/blade destroy 1f0baf517cdf8979
返回以下结果,表⽰停⽌实验成功
{"code":200,"success":true,"result":{"Target":"cpu","Scope":"","ActionName":"fullload","ActionFlags":{},"ActionPrograms":null}}
再去观察 CPU 情况,CPU 负载已回到正常状态:
这样⼀个增加机器cpu负载就完成了。
>阿尼姆斯阿

本文发布于:2024-09-22 19:44:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/161966.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实验   场景   实现   负载   命令   平台   解压   机器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议