在灵骏节点池中开启节点自愈

更新时间:
复制为 MD 格式

开启节点自愈后,ACK会自动监测异常事件,并在灵骏节点发生底层事件故障时调用灵骏审批运维操作能力完成修复。启用该功能需先开启灵骏节点池的托管能力。

节点自愈启用入口

ACK支持在创建节点池或修改存量节点池的托管配置时,开启节点自愈功能并定义自愈规则。自愈规则可通过自愈规则页面进行管理,配置指引参见下文自愈规则配置说明

重要
  • 白名单功能。请联系技术服务团队启用。

  • 不支持专属云地域。

方式一:创建节点池时配置

  1. ACK集群列表页面,单击目标集群名称,在集群详情页左侧导航栏,选择节点管理 > 节点池

  2. 单击创建灵骏节点池,在托管配置区域开启托管,按照页面提示完成自愈规则的创建和节点自愈的启用。

    完整配置项说明,请参见创建灵骏节点池

方式二:存量节点池中配置

  1. ACK集群列表页面,单击目标集群名称,在集群详情页左侧导航栏,选择节点管理 > 节点池

  2. 操作列,单击灵骏节点池对应的image > 开启托管(未启用托管)或托管配置(已启用托管),按照页面提示完成自愈规则的创建和节点自愈的启用。

    关于配置项的完整说明,请参见创建灵骏节点池

启用后,可在巡检和诊断 > 自愈规则页面,进行规则的集中新增与管理。

  1. ACK集群列表页面,单击目标集群名称,在集群详情页左侧导航栏,选择巡检和诊断 > 自愈规则

  2. 按照页面提示,单击创建自愈规则创建新规则,或在规则列表管理已有规则。

自愈规则配置说明

重要

注意事项如下:

  • 故障按优先级处理。高优先级的维修类故障优先执行修复;低优先级的重启类故障延后执行,直至高优先级故障处理完毕。

  • 自定义故障修复流程中,任意步骤开启人工介入后,请及时完成授权,否则ACK将暂停执行当前及后续流程,节点可能停留在受损状态。

  • 开启节点自愈后 ,ACK自动监测异常事件,并在灵骏节点发生底层故障时,调用审批运维能力进行修复。您需要密切关注灵骏节点自身的运行状况及其在ACK集群中的节点状态,避免业务持续受损。

1. 进入自愈规则配置入口

  1. 通过节点池创建或配置界面,或在自愈规则页面单击创建自愈规则,进入创建自愈规则面板。

  2. 按照页面提示,配置规则名称并完成规则的创建:

2. 配置子规则

a. 选择故障

节点自愈通过监测灵骏节点上报的云监控事件发现故障,并调用灵骏审批运维操作能力完成修复。

故障类型与修复行为:

故障名称

灵骏事件名称

Kubernetes Condition

故障说明

修复行为

灵骏节点底层硬件异常

Node.HardwareFault.HOST:Inquiring

resourceType: Node
  • Type: Node.HardwareFault.HOST

  • Status: True

  • Reason:Node.HardwareFault.HOST:Inquiring

  • Message: <故障详情>

灵骏节点发生硬件故障,需进行维修。维修完成后,节点本地数据可能丢失。若您将容器运行时及 kubelet 目录挂载至本地盘,请在维修结束后将该节点从 ACK 集群节点列表中移除再重新加入。

维修灵骏节点。

重要

灵骏节点维修过程中,本地盘数据可能丢失,请提前备份。

优先级:高

灵骏节点底层异常

Node.FaultNeedReboot.HOST:Inquiring

resourceType: Node
  • Type: Node.FaultNeedReboot.HOST

  • Status: True

  • Reason:Node.FaultNeedReboot.HOST:Inquiring

  • Message: <故障详情>

灵骏节点发生故障,建议尽快重启节点以尝试修复。

重新启动灵骏节点。

优先级:中

b. 自定义故障修复流程

以下修复流程均支持人工介入,通过节点标签(Label)授权完成。开启后,ACK 将在获得授权确认后再执行操作。

配置项

说明

节点隔离

故障节点被标记为不可调度(即设置 spec.unschedulabletrue),以防止新的工作负载被调度至该节点。

节点排水

开启前,请先开启节点隔离

ACK 逐个驱逐故障节点上运行的工作负载。节点排水默认超时时间为300秒,可按需调整。

  • 节点排水时遵循 PDB协议。以下Pod不会被驱逐:

    • DaemonSet管理的Pod。

    • OpenKruise Advanced DaemonSet管理的Pod。

    • 包含 alibabacloud.com/evict-pod=true 标签的Pod。

  • 当工作负载长时间无法驱逐时,ACK将在排水超时后自动进入后续流程。

自动修复

ACK 执行故障类型所对应的修复动作。详见故障类型与修复行为

解除节点隔离

开启前,请先开启节点隔离

节点恢复为可调度状态(即设置 spec.unschedulablefalse)。

若节点在进入修复流程前已处于不可调度状态,本步骤不会将其恢复为可调度状态。

节点自愈事件

灵骏节点池开启托管配置并关联自愈规则后,ACK会将本集群的灵骏节点故障事件转换为Kubernetes Event Condition,并透出节点自愈进度相关的Kubernetes Event。

常见自愈流程事件

事件(Reason)

级别

说明

DetectedLingJungCMSEvent

Warning

检测到灵骏节点故障事件,或故障事件状态有更新。

RepairPlanCreated

Warning

自愈计划已创建。

WaitingApproveProcedure

Warning

当前流程需要人工授权,事件消息中包含需授权的操作及授权方式。

RepairPlanProcedureWaitingForApproval

Warning

授权标签已添加到节点标签。

RepairPlanStatusUpdated

Normal

自愈计划状态更新,记录当前执行的流程及执行结果。

ApproveLingjunOperation

Normal

已授权灵骏管控面执行修复操作。

NodeNotRecovery

Warning

修复完成后每30分钟检测一次节点状态。若节点未恢复,则触发此事件。

RepairPlanCompleted

Warning

自愈计划结束,事件消息中显示自愈成功或失败。

特殊场景事件

在部分场景下,可能涉及如下事件。

事件(Reason)

级别

说明

NodeRecoveryNeedSilence

Normal

本节点上一次自愈计划执行成功,但当前故障类型与上次自愈计划不同,系统将等待 10 分钟静默期后,再创建新的自愈计划。

NodeRecoveryHasProcessed

Warning

当前故障已被最近一次自愈成功处理,但节点实际未恢复,需人工介入排查。

RepairPlanFailed

Warning

当前故障对应的自愈计划执行失败,节点未恢复,需人工介入排查。

RepairPlanStatusUpdateFailed

Warning

自愈计划状态更新失败。

AddInquiringLabelFailed

Normal

授权Label设置失败,自愈流程中止。

配置告警

开启节点自愈后,请务必开启报警管理功能,启用集群节点池运维事件报警规则集集群节点自愈报警规则集,在异常情况发生时自动接收告警通知并及时响应。

规则集启用操作,请参见容器服务报警管理