可靠性測試-故障注入工具

jpx發表於2024-07-22

故障注入是一種模擬故障的技術,用於測試系統在各種異常情況下的反應和恢復能力。Chaos Blade 是阿里巴巴開源的混沌工程工具,用於在雲原生環境中進行故障注入。它支援多種故障型別,包括主機、網路、應用和 Kubernetes 資源等。

本篇第一部分,我們手動執行故障注入,可以直接進行手動可靠性測試,後面再或透過python、java等將可靠性用例制自動化。

1. Chaos Blade下載,安裝

wget https://github.com/chaosblade-io/chaosblade/releases/download/v1.0.0/chaosblade-1.0.0-linux-amd64.tar.gz

tar -zxvf chaosblade-1.0.0-linux-amd64.tar.gz

sudo mv blade /usr/local/bin/

# 驗證安裝

blade -h

2. 使用Chaos Blade手動注入故障

1. 主機級故障注入

# CPU 壓力測試:模擬 CPU 高負載情況
blade create cpu fullload --cpu-percent 80 --timeout 60


# 記憶體壓力測試:模擬記憶體高佔用情況
blade create mem load --mem-percent 80 --timeout 60

# 磁碟 I/O 壓力測試
blade create disk burn --read --path / --timeout 60

2. 網路級故障注入

# 在指定的網路介面上注入網路延遲
blade create network delay --interface eth0 --time 3000 --timeout 60

# 在指定的網路介面上注入網路丟包
blade create network loss --interface eth0 --percent 50 --timeout 60

# 在指定的網路介面上限制網路頻寬
blade create network loss --interface eth0 --rate 1000kbit --timeout 60

3. k8s資源故障注入

# 隨機刪除一個 Pod
blade create k8s pod --namespace default --labels app=myapp --timeout 60

# 對 Pod 網路注入延遲
blade create k8s network delay --namespace default --labels app=myapp --interface eth0 --time 3000 --timeout 60

4. 故障狀態檢視、故障取消

blade status

blade destroy <experiment-id>

5. 透過yaml方法進行故障注入:安裝 Chaos Blade Operator,這樣可以透過 YAML 檔案來管理故障注入實驗。

相關文章