ChaosBlade-Box平台安装

ChaosBlade-Box平台安装

参考自:https://chaosblade.io/docs/about-chaosblade/box-introduce/

通过ChaosBlade-Box可实现 chaosbladelitmuschaos 等已托管工具自动化部署,按照社区的建立的混沌实验模型统一实验场景,根据主机、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

备注

使用容器部署的组件会自动从docker hub拉取容器镜像,可以离线导入容器镜像。我这边将使用到的安装包和容器镜像打包放到了网盘,关注微信公众号'思享云栈'回复chaosblade获取。

posted @   lldhsds  阅读(380)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示