一、简介
ChaosBlade 包含混沌工程实验工具chaosblade和混沌工程平台chaosblade-box。ChaosBlade的github项目地址,ChaosBlade 主要包括以下几个组件:
ChaosBlade-Box Console:
ChaosBlade 可视化组件,主要提供一套用户友好的 Web 界面,用户可以通过该界面进行混沌工程实验的编排与操作管理。
ChaosBlade-Box Server:
核心逻辑组件,主要负责混沌工程实验的管理与编排,探针与应用管理。包括组件,
Chaos Engine:演练引擎,包括流程编排、安全管控、演练报告等功能;
Chaos Runner:演练执行器,兼容多种执行工具;
Chaos Experinece:演练经验库等。
Agent:
核心逻辑组件,部署在用户终端的主机或 Kubernetes 集群内,主要负责和 ChaosBlade-Box Server 建联上报心跳并作为命令下发通道。
ChaosBlade:
主要执行工具,能在主机和 Kubernetes 等不同环境上执行故障注入,能对系统网络设备、文件系统、内核及系统上运行的应用等进行故障干扰。
二、ChaosBlade 工具简单使用
0.挂载数据盘 模拟数据盘的使用率
#查看磁盘 假如有一个未挂载的/dev/vdb
fdisk -l
#格式化 /dev/vdb
mkfs.ext4 /dev/vdb
#创建/data目录
mkdir /data
#挂载到/data目录 可直接挂载到已有的目录 如/home /opt
mount /dev/vdb /data
#写入配置文件
echo "/dev/vdb /data ext4 defaults 0 0" >> /etc/fstab
#测试 不报错即可
mount -a
#查看
df -h
1.安装
x86平台架构
#下载并解压
wget https://github.com/chaosblade-io/chaosblade/releases/download/v1.7.4/chaosblade-1.7.4-linux-amd64.tar.gz
tar -xf chaosblade-1.7.4-linux-amd64.tar.gz
#版本查看
cd chaosblade-1.7.4/
./blade version
arm平台架构
#下载并解压
wget https://github.com/chaosblade-io/chaosblade/releases/download/v1.7.4/chaosblade-1.7.4-linux-arm64.tar.gz
tar -xf chaosblade-1.7.4-linux-arm64.tar.gz
#版本查看
cd chaosblade-1.7.4/
./blade version
2.使用ChaosBlade 可以模拟各种类型的故障,如网络延迟、网络分区、CPU 负载增加、内存溢出等。这里实验模拟磁盘、内存和CPU负载增加。
模拟磁盘使用率
#/data分区填充40G
./blade create disk fill --path /data --size 40000
{"code":200,"success":true,"result":"35a91d6a734ccf6d"}
#销毁实验
./blade destroy 35a91d6a734ccf6d
#/data分区使用率50%
blade create disk fill --path /data --percent 50
模拟CPU使用率
#0-13核 cpu使用率79%
./blade create cpu load --cpu-list 0-13 --cpu-percent 79
模拟内存使用率
#内存使用率82%
./blade c mem load --mode ram --mem-percent 82
模拟网络延迟
./blade create cri network delay --time <延迟时间> --offset <偏移时间> --interface <网络接口> --remote-port <远程端口> --destination-ip <目标地址IP> --container-id <容器ID>
三、忘记事件ID,怎么销毁实验
#方式一 到日志中查看uid
cd chaosblade-1.7.2/
more logs/chaosblade.log
#方式二 查看进程 kill掉
ps -ef | grep blade
kill -9 pid
#方式三 重启操作系统