chaosblade的使用
1、下載包:
-
liunx版本:
https://github.com/chaosblade-io/chaosblade/releases/download/v0.0.3/chaosblade-0.0.3.linux-amd64.tar.gz
-
獲取最新版本的地址:
https://github.com/chaosblade-io/chaosblade/releases
2、安裝
上傳到對應需要進行混沌實驗的機器上or容器里面
拷貝到容器里的命令
kubectl cp chaosblade-0.0.3.linux-amd64.tar qa1-f5-web-vendor-cd97d5956-g9q5h:/home
解壓縮
tar -xf chaosblade-0.0.3.linux-amd64.tar
進入目錄下可以看到
3、故障演練
-
禁用網絡端口
./blade create network drop --local-port 端口號 //禁用本地端口
./blade create network drop --remote-port 端口號 //禁用遠程調用端口
ps:在容器環境下如需要模擬network的故障,需要安裝iptables
yum install iptables -y
返回200則故障演練成功,並會生成該故障的uid
-
模擬機器的網絡延時
./blade create network delay --interface eth0 --time 3000 //網卡名稱可以通過ifconfig查詢
ps:在容器環境下需要安裝tc才能使用該命令,安裝命令: yum -y install iproute
-
模擬cpu滿負載
./blade create cpu fullload
-
模擬應用連接指定數據庫網絡延時
需要通過jvm掛載,通過mysql dirver驅動
下面模擬APP1應用連接到base庫,以及模擬APP1的線程池打滿的情況
export JAVA_HOME="/usr/java/jdk1.8.0_151/bin/java" //設定java的執行路徑的全局變量,這是虛擬機上的java路徑,容器的路徑/usr/bin/java
./blade prepare jvm --process APP1-service //掛載jvm
./blade create mysql delay --database DB_APP1 --time 5000 //演練掛載的APP1服務器連接到DB_APP1庫的延時5000ms
./blade create dubbo threadpoolfull --process APP1-service --provider//演練APP1應用的線程池被打滿的情況
-
模擬磁盤io高讀寫
./blade create disk burn --read //演練當前機器高讀
./blade create disk burn --write //演練當前機器高寫
vmstat 2 5 //查看磁盤讀寫io狀態
-
恢復故障
大家在進行故障演練的時候測試完成一定要記得恢復故障
./blade d uid //故障成功時生成的uid
./blade status --type create //如果忘記uid可以通過該方式查看
-
其他
以上指列出來了功能環境的常用功能,更多功能可以通過每一層級的-h指令來查看有哪些功能