A. ChaosBlade介紹
1. ChaosBlade概述
- 是阿里巴巴開源的一款遵循混沌工程原理和混沌實驗模型的實驗注入工具,幫助企業(yè)提升分布式系統(tǒng)的容錯能力,并且在企業(yè)上云或往云原生系統(tǒng)遷移過程中業(yè)務連續(xù)性保障。
2. ChaosBlade功能
- 混沌實驗管理工具,包含創(chuàng)建實驗、銷毀實驗、查詢實驗、實驗環(huán)境準備、實驗環(huán)境撤銷等命令,是混沌實驗的執(zhí)行工具,執(zhí)行方式包含 CLI 和 HTTP 兩種。提供完善的命令、實驗場景、場景參數(shù)說明,操作簡潔清晰,下方將簡單陳列幾個場景:
a. 基礎資源:比如 CPU、內存、網(wǎng)絡、磁盤、進程等實驗場景;
b. Java 應用:比如數(shù)據(jù)庫、緩存、消息、JVM 本身、微服務等,還可以指定任意類方法注入各種復雜的實驗場景;
c. Docker 容器:比如殺容器、容器內 CPU、內存、網(wǎng)絡、磁盤、進程等實驗場景;
d. 云原生平臺:比如 Kubernetes 平臺節(jié)點上 CPU、內存、網(wǎng)絡、磁盤、進程實驗場景,Pod 網(wǎng)絡和 Pod 本身實驗場景如殺 Pod,容器的實驗場景如上述的 Docker 容器實驗場景。
B. ChaosBlade box平臺實戰(zhàn)筆記
1. 前期準備工作
- ChaosBlade jar包下載(https://github.com/chaosblade-io/chaosblade-box/releases/download/v1.0.0/chaosblade-box-1.0.0.jar)
- docker環(huán)境準備
- java環(huán)境準備
- ansible工具準備
2. 相關工具安裝
-
mysql容器部署
a.docker pull mysql:5.6完成數(shù)據(jù)庫安裝工作;
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數(shù)據(jù)庫,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,并將數(shù)據(jù)庫的用戶和密碼輸入;
b. 登錄hostip+7001端口的前端頁面,注冊admin賬號,開始使用chaosblade的演練功能。