使用雲助手外掛程式ecsgo-scarlet進行ECS故障演練
為驗證應用或營運體系在面對常見的作業系統異常(如資源耗盡、服務不可用)時的韌性與響應能力,可以使用雲助手外掛程式ecsgo-scarlet在測試執行個體中安全、可控地類比這些故障情境。
操作步驟
故障注入屬於破壞性操作,可能導致執行個體網路中斷、無法登入或效能急劇下降。嚴禁在任何生產環境或包含重要資料的執行個體上使用。
一、準備工作
-
準備一台Linux測試執行個體。
-
確保ECS執行個體已經安裝雲助手Agent,並且雲助手狀態為正常。具體操作,請參見查看雲助手狀態及異常狀態處理。
使用雲助手外掛程式ecsgo-scarlet,在Linux系統內部注入相關的ECS故障,需要自我維護故障注入和恢複的次序,ecsgo-scarlet基於 Python 語言及其標準庫混合Shell 指令碼實現,相容 Python 2.7 和 3.6+。
二、查看可注入的故障列表
在注入故障前,可以先驗證外掛程式是否可用,並列出目前的版本支援的所有故障類型。
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
-
使用具有sudo存取權限的使用者,查看外掛程式的協助資訊。如果成功返回用法和命令列表,則說明外掛程式可用。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "--help"-
list:列出支援注入的故障能力。
-
inject:注入故障,參數後面加上具體故障情境及所需參數。
-
revoke:恢複故障,參數後面加上具體故障情境及所需參數。
-
install_deps:安裝故障注入時所需的依賴工具(僅特殊情境下需要),在inject前調用。
-
-
查看支援的故障列表。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "list"
二、注入、驗證和恢複故障
以SSH 設定檔錯誤(SshdConfigValidationFailed)為例,示範完整的故障注入、驗證和恢複流程。
-
注入故障。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "inject SshdConfigValidationFailed"輸出結果,表明原始SSH設定檔已被備份,以供故障恢複使用。
'/etc/ssh/sshd_config' -> '/etc/ssh/sshdcfg-SshdConfigValidationFaile.backup'重要注入故障可能導致執行個體SSH無法串連,
-
驗證故障。
-
執行
echo $?命令,若返回0,表示故障注入成功。 -
前往ECS控制台-診斷,選擇目標執行個體,單擊發起診斷。可以看到異常項清單中出現SSH服務狀態檢查。
展開 SSH 服務狀態檢查 可見,SSH 設定檔
/etc/ssh/sshd_config第 153 行存在錯誤配置項(Bad configuration option: 111111),執行sshd -t輸出terminating, 1 bad configuration options。需修複該設定檔並重啟 SSH 服務。
-
-
故障恢複。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "revoke SshdConfigValidationFailed" -
驗證故障是否恢複。
前往ECS控制台-診斷,選擇目標執行個體,單擊發起診斷。可以看到異常項清單中不再出現SSH服務狀態檢查。
此時異常項清單中僅顯示安全性群組入方向常用連接埠未放開提示,確認 SSH 相關異常已消除。
三、批量執行與命令複用
雲助手支援對多台執行個體批量建立/執行命令以及命令複用,可提升在測試叢集中進行統一故障演練的效率。
-
批量執行:在執行命令的選擇執行個體步驟中,勾選多個合格測試執行個體,雲助手會將命令同時下發到所有選中的執行個體上。
-
命令複用:通過執行並儲存建立的命令會儲存在我的命令頁簽中。後續需要重複執行相同操作時,直接找到已儲存的命令並單擊執行即可。