最近更新时间:2024.03.07 17:36:45
首次发布时间:2023.09.27 17:21:19
节点作为集群的基础设施,其工作状态对用户来说至关重要。火山引擎容器团队自研节点检查和自愈功能,面向节点进行常见故障检测和故障自愈。本文为您介绍如何配置节点检查自愈功能。
说明
【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请提交申请。
容器服务支持节点检查自愈功能,系统会按照规则配置,定期进行节点检查。当节点故障时,会记录 Node Event 事件,并执行自愈动作。目前支持的检查项和自愈动作,如下表所示。
检查项 | Event | 描述 | 自愈动作 |
---|---|---|---|
GPU 掉卡故障 | GpuCardFallen | 节点发生 GPU 掉卡故障 | 禁止调度、节点排干、ECS 重启、重新检测 |
GPU 可恢复的内存故障 | GpuMemoryErrorRecoverable | 节点发生 GPU 可恢复的内存故障 | 禁止调度、节点排干、ECS 重启、重新检测 |
GPU 不可恢复的内存故障 | GpuMemoryErrorUnrecoverable | 节点发生 GPU 不可恢复的内存故障 | 禁止调度 |
GPU 链路故障 | GpuLinkError | 节点 GPU 链路故障或带宽使用不足 | 禁止调度 |
GPU 链路性能下降 | GpuLinkUnhealthy | 节点 GPU 链路可用但发生掉速 | 禁止调度 |
GPU 驱动故障 | GpuDriverError | 节点发生 GPU 驱动硬件故障 | 禁止调度、节点排干、ECS 重启、重新检测 |
Kubelet 故障 | KubeletUnhealthy | Kubelet 运行状态异常导致节点不可用 | 重启 kubelet 服务 |
Runtime 故障 | RuntimeUnhealthy | containerd / docker 运行状态异常导致节点不可用 | 重启 containerd 服务 |
时间同步服务异常 | NTPProblem | 时钟同步服务(chrony)异常 | 重启 chrony 服务 |
说明
容器服务节点检查 GPU 相关规则的自愈流程,如下图所示。
节点池绑定检查自愈规则后,系统会按照规则配置,定期进行节点检查。当节点 GPU 故障时,会记录 Node Event 事件。您可以在 事件中心 查看对应的事件。检查项和事件的对应关系,如下表所示。
事件 | 事件描述 | 消息 | 消息描述 | 事件类别 |
---|---|---|---|---|
NodeRepair | 开始自动故障处理 | Node {nodename} begin to repair | 开始执行故障处理 | Normal |
NodeRepairAction | 自动故障处理 | Node {nodename} status is now: NodeCordon | 异常时禁止调度 | Warning |
Node {nodename} status is now: NodeDrainStart | 开始排干节点 | Warning | ||
Node {nodename} status is now: NodeDrainCompleted | 排干节点完成 | Normal | ||
Node {nodename} status is now: InstanceReboot | 排干后重启 ECS | Normal | ||
Node {nodename} status is now: InstanceForceReboot | 未排干强制重启 ECS | Warning | ||
NodeRepairActionFailed | 自动故障处理失败 | Node {nodename} status is now: NodeIngressControllerExist | 排干前检查节点运行了 ingress-controller pod | Warning |
Node {nodename} status is now: NodeBindPodExist | 排干前检查节点存在强绑定节点的工作负载 | Warning | ||
Node {nodename} status is now: NodeSingleInstanceWorkloadExist | 排干前检查节点存在单副本工作负载 | Warning | ||
Node {nodename} status is now: NodeStaticPodExist | 排干前检查节点存在 static pod | Warning | ||
Node {nodename} status is now: {Gpu 故障事件}AfterRepairAction | 故障自愈后再检测故障仍然异常 | Warning | ||
Node {nodename} status is now: NodeRepairActionTerminated | 自愈动作被终止 | Normal | ||
NodeRepairActionSucceeded | 自动故障处理成功 | {Gpu 故障事件}RecoveredAfterRepairAction | 故障自愈后再检测故障恢复 | Normal |
说明
配置项 | 说明 |
---|---|
规则名称 | 配置检查自愈规则的名称。同一个集群下,规则名称必须唯一。 |
规则配置 | 在预置检查项中选择需要检查的项目,并配置异常时是否开启自愈。
|
配置项 | 说明 |
---|---|
节点排干时间 | 配置从节点被封锁到开始进行 Pod 驱逐的时间。支持多种时间段选择,包括:立刻、15 分钟、30 分钟、1 小时、2 小时、3 小时、6 小时、12 小时、24 小时、36 小时、2 天、3 天、4 天、5 天、6 天、7 天等。 注意 节点排干前会检查节点是否运行了以下工作负载,您需要确保节点上不存在这些工作负载,否则将不会进行节点排干的操作:
节点排干不能完全保证终止/驱离节点上的工作负载,如果有工作负载无法被驱离,在不进行人工干预的前提下,将不会执行下一步自愈操作直至强制重启(若配置强制重启时间)。 |
配置项 | 说明 |
---|---|
最长重启等待时间 | 配置从节点排干到重启的时间。支持多种时间段选择,包括:30 分钟、1 小时、2 小时、3 小时、6 小时。 |
修复成功后解除节点封锁 | 配置节点重启并修复故障后,是否自动解除封锁。当开启该功能时,节点重启后系统会再次进行 GPU 检测,当所有检测项均无异常时,将解除节点封锁。 注意 系统仅能确保的已有检测项无异常,若发生超出节点检测项范围的故障,仍有可能导致训练或推理任务运行异常,如果自愈流程完成后,仍然存在问题,请 提交工单 获取技术支持。 |
您可以在创建节点池时绑定检查自愈规则,也可以为存量节点池绑定检查自愈规则。本文以创建节点池时绑定检查自愈规则为例。
配置项 | 说明 |
---|---|
检查和自愈 | 配置是否开启节点检查自愈功能。
|
检查和自愈规则 | 在下拉菜单中选择节点检查自愈规则。 |
说明
节点池的其他配置详情,请参见 创建节点池。