力扣 704.二分查找 給定一個n個元素的有序的(升序)整型數組nums和一個目標值target,寫一個函數搜索nums中的target,如果目標值存在返回小標,否則返回-1。 思路:二分查找法,定義左右邊界[left,right);不斷取中值縮小查找範圍。 class Solution{ publ ...
故障註入是一種模擬故障的技術,用於測試系統在各種異常情況下的反應和恢復能力。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 文件來管理故障註入實驗。