使用雲助手外掛程式ecsgo-scarlet進行ECS故障演練

更新時間:
Copy as MD

為驗證應用或營運體系在面對常見的作業系統異常(如資源耗盡、服務不可用)時的韌性與響應能力,可以使用雲助手外掛程式ecsgo-scarlet在測試執行個體中安全、可控地類比這些故障情境。

操作步驟

警告

故障注入屬於破壞性操作,可能導致執行個體網路中斷、無法登入或效能急劇下降。嚴禁在任何生產環境或包含重要資料的執行個體上使用。

一、準備工作

使用雲助手外掛程式ecsgo-scarlet,在Linux系統內部注入相關的ECS故障,需要自我維護故障注入和恢複的次序,ecsgo-scarlet基於 Python 語言及其標準庫混合Shell 指令碼實現,相容 Python 2.7 和 3.6+。

二、查看可注入的故障列表

在注入故障前,可以先驗證外掛程式是否可用,並列出目前的版本支援的所有故障類型。

  1. 登入ECS執行個體。

    1. 訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。

    2. 進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。

  2. 使用具有sudo存取權限的使用者,查看外掛程式的協助資訊。如果成功返回用法和命令列表,則說明外掛程式可用。

    sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "--help"
    • list:列出支援注入的故障能力。

    • inject:注入故障,參數後面加上具體故障情境及所需參數。

    • revoke:恢複故障,參數後面加上具體故障情境及所需參數。

    • install_deps:安裝故障注入時所需的依賴工具(僅特殊情境下需要),在inject前調用。

  3. 查看支援的故障列表。

    sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "list"

二、注入、驗證和恢複故障

SSH 設定檔錯誤(SshdConfigValidationFailed)為例,示範完整的故障注入、驗證和恢複流程。

  1. 注入故障。

    sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "inject SshdConfigValidationFailed"

    輸出結果,表明原始SSH設定檔已被備份,以供故障恢複使用。

    '/etc/ssh/sshd_config' -> '/etc/ssh/sshdcfg-SshdConfigValidationFaile.backup'
    重要

    注入故障可能導致執行個體SSH無法串連,

  2. 驗證故障。

    1. 執行echo $?命令,若返回0,表示故障注入成功。

    2. 前往ECS控制台-診斷,選擇目標執行個體,單擊發起診斷。可以看到異常項清單中出現SSH服務狀態檢查

      展開 SSH 服務狀態檢查 可見,SSH 設定檔 /etc/ssh/sshd_config 第 153 行存在錯誤配置項(Bad configuration option: 111111),執行 sshd -t 輸出 terminating, 1 bad configuration options。需修複該設定檔並重啟 SSH 服務。

  3. 故障恢複。

    sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "revoke SshdConfigValidationFailed"
  4. 驗證故障是否恢複。

    前往ECS控制台-診斷,選擇目標執行個體,單擊發起診斷。可以看到異常項清單中不再出現SSH服務狀態檢查

    此時異常項清單中僅顯示安全性群組入方向常用連接埠未放開提示,確認 SSH 相關異常已消除。

三、批量執行與命令複用

雲助手支援對多台執行個體批量建立/執行命令以及命令複用,可提升在測試叢集中進行統一故障演練的效率。

  • 批量執行:在執行命令的選擇執行個體步驟中,勾選多個合格測試執行個體,雲助手會將命令同時下發到所有選中的執行個體上。

  • 命令複用:通過執行並儲存建立的命令會儲存在我的命令頁簽中。後續需要重複執行相同操作時,直接找到已儲存的命令並單擊執行即可。