本文介绍如何使用混沌工程进行Node内存高负载故障演练。

前提条件

警告 开启混沌工程前请充分评估影响范围,避免使用混沌工程对您的业务造成影响,建议在测试环境上验证后,再应用到生产环境上。

演练目的

  • 熟悉Node节点异常场景下的报警、诊断方法及SOP处理流程。
  • 熟悉Node节点接入AHAS及AHAS产品的基本操作流程。

步骤一:配置集群报警信息

选择状态为运行中的集群为演练对象,以ACK专有版集群为例说明。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择运维管理 > 报警配置
    说明 首次登录需根据页面提示进行安装,若显示组件未升级,需单击开始升级完成升级后,进入报警配置页面。
  5. 报警配置页面,按照以下步骤完成联系人创建和联系人分组创建。
    1. 单击联系人管理页签,然后单击创建
    2. 创建联系人页面,输入姓名电话邮箱。然后单击确定
      联系人创建完成后,您将会收到验证激活短信或验证激活邮件,请按相应提示进行激活操作。
    3. 单击联系人分组管理页签,然后单击创建
    4. 创建分组页面,输入分组名称,然后选择分组联系人,最后单击确定
      选择分组联系人时,将可选联系人添加到已选联系人列表,也可移除已选联系人。创建分组
  6. 报警配置页面,单击报警规则管理页签。
    1. 集群节点异常报警规则集启动状态设置为开启。
      报警规则集合容器场景的监控报警能力,提供报警的统一配置管理。此处以集群节点异常报警规则集为例,更多报警配置,请参考容器服务报警管理
    2. 单击编辑通知对象,添加需要接收此报警规则集的联系人分组。

步骤二:为目标节点部署探针

您需要根据以下步骤为目标节点部署探针。

  1. 在集群管理页左侧导航栏中,选择节点管理 > 节点,选取演练所需节点。
  2. (可选)在集群管理页左侧导航栏中,选择应用 > Helm,找到发布名称ahas的应用,单击右侧操作列下的删除,卸载应用ack-ahas-pilot。
    若您的目标集群中安装了ack-ahas-pilot,需先将其卸载,避免与ECS实例的探针冲突。
  3. 登录AHAS控制台
  4. 在顶部菜单栏,选择与演练集群相同的地域。
  5. 在控制台左侧导航栏中,单击探针管理,然后选择探针安装 > 故障演练探针
    安装探针1
  6. 选择环境配置向导页面,选择安装的环境为阿里云ECS
    安装探针2
  7. 安装应用高可用插件配置页面,找到对应的目标实例,单击右侧操作列下的单击安装
  8. 在弹出页面,选中新增应用,输入应用名称test-node-app分组名称test-node-group。然后单击安装
    安装探针3
    安装完成后,在目标实例右侧操作列下,可以看到安装成功

步骤三:实施演练

配置演练

  1. 登录AHAS控制台
  2. 在顶部菜单栏,选择与演练集群相同的地域。
  3. 在控制台左侧导航栏中选择故障演练 > 我的空间
  4. 我的空间页面,选择新建演练 > 新建空白演练进入演练配置页面。
    新建演练
  5. 演练配置页面,输入演练基本信息完成演练基本配置。
    执行演练1
  6. 演练配置页面,单击配置页签配置演练分组信息,然后单击添加演练内容
    界面配置如下图所示。演练配置
    说明
    • 演练应用:在下拉框中选中test-node-app。此处为步骤8中新增应用的应用名称,本文值为test-node-app
    • 应用分组:在下拉框中选中test-node-group。此处为步骤8中新增应用的分组名称,本文的值为test-node-group
    • 机器列表新增应用安装完成后,会有对应的机器列表项供选择。
  7. 在弹出的选择演练故障页面,选择系统资源 > 内存资源,然后选中主机内内存负载,单击确定
    选择负载
  8. 演练内容区域选择主机内内存负载,在弹出框中设置内存使用率97,选择内存模式ram,设置内存占用速率20,其余参数保持默认值。然后依次单击关闭保存
    设置负载参数
  9. 根据页面提示,依次单击下一步,弹出演练创建成功页面,然后单击演练详情进入刚创建的演练详情页面。

执行演练

  1. 在演练详情页面,在配置页签下单击演练
    说明 若未购买资源包或资源包不足,请根据提示完成资源包的购买,才能继续执行演练操作。
  2. 在弹出框中单击确认进入如下演练执行页面。
    演练执行页面可查看演练的基本信息、节点的内存使用百分比等信息。演练执行

查看演练状态

演练开始后,可通过监控查看目标节点的内存资源消耗情况,出现事件和报警;停止演练后,目标节点会自动恢复。演练过程中查看演练效果的步骤如下。

  1. 查看Node内存使用情况。
    1. 登录容器服务管理控制台
    2. 在控制台左侧导航栏中,单击集群
    3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
    4. 在集群管理页左侧导航栏中,选择运维管理 > Prometheus监控
    5. Prometheus监控页面,单击集群节点监控详情,选择对应节点,在内存使用率下拉菜单中选择View,查看内存使用率大盘。
      此时查看到的内存使用率为97%。监控详情
  2. 查看报警信息。
    1. 在集群管理页左侧导航栏中,选择运维管理 > 报警配置,然后单击报警历史
      报警历史页签中可看到包含内存使用率 >=85%关键字的报警记录。
    2. 查看报警短信或邮件。
      若您配置了报警联系人的电话及邮箱,可收到相应的报警短信和邮件;如您能成功接收报警信息,说明此次演练验证成功。
  3. 查看SOP处理手册处理对应的报警问题。
    关于Node内存高负载的SOP处理,请参见Node节点异常问题排查