A. ChaosBlade介绍
1. ChaosBlade概述
- 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中业务连续性保障。
2. ChaosBlade功能
- 混沌实验管理工具,包含创建实验、销毁实验、查询实验、实验环境准备、实验环境撤销等命令,是混沌实验的执行工具,执行方式包含 CLI 和 HTTP 两种。提供完善的命令、实验场景、场景参数说明,操作简洁清晰,下方将简单陈列几个场景:
a. 基础资源:比如 CPU、内存、网络、磁盘、进程等实验场景;
b. Java 应用:比如数据库、缓存、消息、JVM 本身、微服务等,还可以指定任意类方法注入各种复杂的实验场景;
c. Docker 容器:比如杀容器、容器内 CPU、内存、网络、磁盘、进程等实验场景;
d. 云原生平台:比如 Kubernetes 平台节点上 CPU、内存、网络、磁盘、进程实验场景,Pod 网络和 Pod 本身实验场景如杀 Pod,容器的实验场景如上述的 Docker 容器实验场景。
B. ChaosBlade box平台实战笔记
1. 前期准备工作
- ChaosBlade jar包下载(https://github.com/chaosblade-io/chaosblade-box/releases/download/v1.0.0/chaosblade-box-1.0.0.jar)
- docker环境准备
- java环境准备
- ansible工具准备
2. 相关工具安装
-
mysql容器部署
a.docker pull mysql:5.6完成数据库安装工作;
b.docker run -d -it -p 3306:3306 \ -e MYSQL_DATABASE=chaosblade \ -e MYSQL_ROOT_PASSWORD=[DATASOURCE_PASSWORD] \ --name mysql-5.6 mysql:5.6 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci \ --default-time_zone='+8:00' \ --lower_case_table_names=1使用容器启动mysql,root账户的密码需自行更改(命令供参考github readme文件);
c. 检查mysql-
docker ps | grep mysql获取container number -
docker exec -it container_number bash进入容器 -
mysql -uroot -p使用设置的密码登录其中 -
show databases确认存在chaosblade数据库,use chaosblade进入
-
运行chaosblade box
a. 进入jar包所在地址,运行nohup java -Duser.timezone=Asia/Shanghai -jar chaosblade-box-1.0.0.jar --spring.datasource.url="jdbc:mysql://DATASOURCE_HOST:3306/chaosblade?characterEncoding=utf8&useSSL=false" --spring.datasource.username=DATASOURCE_USERNAME --spring.datasource.password=DATASOURCE_PASSWORD --chaos.server.domain=BOX-HOST> chaosblade-box.log 2>&1 &将DATASOURCE_HOST改成运行box平台的ip,并将数据库的用户和密码输入;
b. 登录hostip+7001端口的前端页面,注册admin账号,开始使用chaosblade的演练功能。