文档首页/ 云容器引擎 CCE/ 用户指南/ 节点/ 节点运维/ 节点组件自愈功能说明
更新时间:2026-07-23 GMT+08:00
分享

节点组件自愈功能说明

功能概述

节点组件自愈是CCE集群保障高可用性的核心能力之一。当节点关键组件因偶发故障或异常退出而不可用时,自愈机制可在无需人工干预的情况下自动检测并恢复服务,最大限度降低节点级故障对业务的影响,保障系统的高可用性。

自愈机制原理

自愈能力由守护进程Systemd服务管理器协同实现,整体流程如下:

  1. 定时健康探测

    守护进程常驻后台,按预设周期向目标组件发起健康检查,探测方式包括:

    • 进程存活检测
    • 端口响应探测
  2. 异常判定

    当组件在连续多次探测中均未响应或返回错误状态时,守护进程判定组件异常。单次探测失败不会触发自愈,避免因网络抖动等瞬时干扰导致误重启。

  3. 触发自愈

    判定异常后,守护进程通过调用Systemd执行服务重启,使组件自动恢复。

自愈组件与阈值

组件

探测周期

连续失败阈值

判定耗时

自愈行为

yangtse/canal

10s

5次

50s

重启yangtse/canal

containerd/docker(容器运行时)

10s

5次

50s

重启containerd/docker

kubelet

10s

5次

50s

重启kubelet

kube-proxy

10s

5次

50s

重启kube-proxy

pod-identity-agent

10s

5次

50s

重启pod-identity-agent

10秒探测周期×5次连续失败=50秒判定窗口。

该窗口在快速发现故障与避免误判之间取得了平衡,既能保证亚分钟级的故障响应,又可有效过滤瞬时抖动。

CCE节点故障检测插件辅助检测

安装CCE节点故障检测插件后,集群将在自愈之外叠加一层组件状态检测,提供更全面的故障可观测性。CCE节点故障检测插件的探测周期与连续失败阈值支持按组件独立调整,以适配不同场景的灵敏度和容错需求。缩短周期或降低阈值可加快故障发现,但可能增加误报概率;反之则提升容错性,但故障响应延迟增大。

组件

探测周期

连续失败阈值

判定耗时

默认故障应对策略

yangtse/canal

30s

1次

30s

上报异常事件

containerd/docker(容器运行时)

30s

1次

30s

上报异常事件

kubelet

30s

1次

30s

上报异常事件

kube-proxy

30s

1次

30s

上报异常事件

pod-identity-agent

30s

1次

30s

上报异常事件

高级容灾策略

CCE节点故障检测插件支持通过配置在检测到组件故障后自动执行以下容灾动作,防止异常节点继续承接流量:

策略

说明

效果

标记不可调度

为节点添加node.kubernetes.io/unschedulable污点

阻止新Pod调度至该节点

驱逐Pod

触发节点上的Pod驱逐流程

将存量Pod迁移至健康节点,加速业务恢复

上述策略可通过CCE节点故障检测插件配置按组件粒度灵活开启,适用于对可用性要求较高的生产场景。当守护进程自愈成功恢复组件后,CCE节点故障检测插件在检测组件状态恢复正常后,会同步更新节点状态,解除不可调度标记。

守护进程与CCE节点故障检测插件的协作关系

维度

守护进程自愈

CCE节点故障检测插件检测

定位

主动修复—检测异常后自动重启组件

自动检测+容灾—上报事件,并可配置不可调度/驱逐

灵敏度

50s判定窗口(5×10s),容错性高

30s即上报(1×30s),支持按组件独立调整,灵敏度更高

价值

保障服务自恢复

丰富故障事件流,支持告警排障,同时隔离故障节点保护业务

注意事项

  • 自愈仅针对组件异常(如组件崩溃、无响应)生效,无法修复配置错误、证书过期、磁盘满等系统性问题。
  • 组件重启期间,对应节点会短暂出现NotReady状态,属于正常现象。
  • 若同一组件频繁触发自愈,说明可能存在底层问题,需结合日志进一步排查。

相关文档