使用云助手插件ecsgo-scarlet进行ECS故障演练

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

为验证应用或运维体系在面对常见的操作系统异常(如资源耗尽、服务不可用)时的韧性与响应能力,可以使用云助手插件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服务状态检查

      image

  3. 故障恢复。

    sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "revoke SshdConfigValidationFailed"
  4. 验证故障是否恢复。

    前往ECS控制台-自助问题排查,选择目标实例,单击发起诊断。可以看到异常项清单中不再出现SSH服务状态检查

    image

三、批量执行与命令复用

云助手支持对多台实例批量创建/执行命令以及命令复用,可提升在测试集群中进行统一故障演练的效率。

  • 批量执行:在执行命令的选择实例步骤中,勾选多个符合条件的测试实例,云助手会将命令同时下发到所有选中的实例上。

  • 命令复用:通过执行并保存创建的命令会保存在我的命令页签中。后续需要重复执行相同操作时,直接找到已保存的命令并单击执行即可。