ChaosBlade-Box平台安装
参考自:https://chaosblade.io/docs/about-chaosblade/box-introduce/
通过ChaosBlade-Box可实现 chaosblade
、litmuschaos
等已托管工具自动化部署,按照社区的建立的混沌实验模型统一实验场景,根据主机、Kubernetes、应用来划分目标资源,通过目标管理器来控制,在实验创建页面,可以实现白屏化的目标资源选择。平台通过调用混沌实验执行来执行不同工具的实验场景,配合接入 prometheus 监控,可以观察实验 metric 指标,后续会提供丰富的实验报告。
ChaosBlade-Box平台支持主机安装和helm安装,同时依赖mysql数据库存储数据。
1 主机安装
1.1 主机依赖环境准备
应用为jar包,确保环境已经安装java,本文使用openjdk 1.8.0_402:
java -verison
自动安装探针依赖ansible,确保环境中安装了ansible:
ansible --vesrion
# centos下安装
yum install ansible -y
确保环境中安装了expect,将 sshKey.sh 和 chaosblade-box-version.jar 放在同一个目录中
# Check if there is already installed
expect -v
# install expect, eg: Fedora || RedHat
yum install expect -y
生成 public key:
# Check if there is already a key, if there is, delete the previous backup
ls ~/.ssh
rm -rf ~/.ssh/*
# generate public key
ssh-keygen -t rsa
1.2 部署box应用
创建数据库,本文按照官方指导通过docker运行mysql,更改mysql root密码。
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
备注:
建议使用官方给出的docker运行mysql数据库,博主测试时使用了本地的mysql 5.7数据库创建了chaosblade,且更改了如下参数,最终运行Box界面频繁报500的错误。
- haracter-set-server=utf8mb4
- collation-server=utf8mb4_unicode_ci
- lower_case_table_names=1
运行应用,下载chaosblade-box-1.0.4.jar
,使用如下命令启动,更改对应的mysql连接参数:
nohup java -Duser.timezone=Asia/Shanghai -jar chaosblade-box-1.0.4.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 --chaos.function.sync.type=ALL --chaos.prometheus.api=PROMETHEUS_API> chaosblade-box.log 2>&1 &
例如,mysql运行在同一台机器,root密码设置为123456,由于没有prometheus环境,去掉相关配置:
nohup java -Duser.timezone=Asia/Shanghai -jar chaosblade-box-1.0.4.jar --spring.datasource.url="jdbc:mysql://127.0.0.1:3306/chaosblade?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai" --spring.datasource.username=root --spring.datasource.password=123456 --chaos.server.domain=BOX-HOST > chaosblade-box.log 2>&1 &
如果时jdk17环境,起用命令添加: --add-opens java.base/java.lang=ALL-UNNAMED
1.3 验证安装
可直接查看进程是否存在,并通过 http://:7001 去访问平台。
停止box:
# 1. 先查看box进程pid
ps -ef | grep chaosblade-box
# 2. 直接杀掉对应的进程
kill process-pid
2 Kubernetes 环境下安装
Kubernetes版本必须不低于版本 v1.16,同时k8s环境安装helm。
2.1 使用 Helm 安装
- 下载 Box Chart 包
查看所有可以下载的 box-release,下载到本地,如:
wget https://github.com/chaosblade-io/chaosblade-box/releases/download/v1.0.2/chaosblade-box-1.0.2.tgz
- 进行安装
helm install chaosblade-box chaosblade-box-1.0.0.tgz --namespace chaosblade --set spring.datasource.password=DATASOURCE_PASSWORD
2.2 验证安装
要查看 Box 运行情况,请执行以下命令:
kubectl get po -n chaosblade
以下是预期输出
NAME READY STATUS RESTARTS AGE
chaosblade-box-5bc47b676f-2gjh9 1/1 Running 0 15d
chaosblade-box-mysql-58cc864896-2jxrs 1/1 Running 0 15d
2.3 卸载 ChaosBlade-Box
如果需要卸载 ChaosBlade-Box,请执行以下命令:
helm un chaosblade-box -n chaosblade
标签:Box,box,--,chaosblade,ChaosBlade,mysql,安装 From: https://blog.csdn.net/codelearning/article/details/139484092备注
使用容器部署的组件会自动从docker hub拉取容器镜像,可以离线导入容器镜像。我这边将使用到的安装包和容器镜像打包放到了网盘,关注微信公众号’思享云栈’回复chaosblade获取。