帮你快速理解、总结文档立即下载

NodeProblemDetectorPlus(节点监测)

最近更新时间:2026-09-15 11:23:32
本文档已由 AI 辅助审校
我的收藏

组件介绍

组件详情请参见 NodeProblemDetectorPlus 说明。

变更记录

发布时间
版本号
变更内容
限制和影响
2026-09-11
1.1.5
1. 新增海光 DCU 故障检测:支持通过 hycu-smi 主动轮询和 XID/SXID 日志解析两种方式检测 DCU 设备异常,覆盖 12 种 NodeCondition(包括设备丢失、高温、不可纠正 ECC 错误、PCIe 链路丢失、HySwitch 交换芯片异常等)。
2. 优化 containerd 运行时检测:改进 containerd 健康检查逻辑,提升检测准确性。
3. 优化网络设备检测:使用 route -n 替代原有方式,避免 DNS 查询带来的延迟。
4. 修复 FrequentDockerRestart 检测逻辑及 kubelet healthchecker 判断问题。
5. 新增 kubelet root-dir 挂载漂移检测:通过 containerd 扫描本节点运行中容器的 kubelet 卷挂载,检测 root-dir 前缀发散(≥2 个不同前缀即命中),新增 KubeletRootDirMismatch 永久 Condition,及时发现 kubelet 修改 root-dir 后存量 Pod 仍挂载旧路径卷导致的 token/证书不更新问题。
6. 自适应监控裁剪:按节点环境自动跳过不可能命中的检测项——无 NVIDIA GPU 节点自动跳过 xid 日志监控、无海光 DCU 节点自动跳过 dcu-xid/dcu-sxid 监控、containerd 节点自动跳过 docker 日志监控,降低无 GPU/containerd 节点的内存开销;存量集群无需改参数直接受益,天然支持 GPU/CPU 混布。
7. 支持 T(stopped) 状态挂起进程检测:扩展 stuck_process_monitor 检测被 SIGSTOP 挂起的进程(彻底的静默失效),新增 StoppedProcess Condition,消除 SIGSTOP 静默故障盲区。
8. 修复 stuck_process_monitor 自指误报:stuck_process_monitor 与 check_process.py 扫描全机 /proc 时排除自身 PID、父进程(NPD)及 NPD 直接子进程,并对命中的候选 D 态进程做二次确认(500ms 间隔 / 连续 2 次),过滤磁盘瞬时 I/O 抖动导致的亚秒级误报,避免 NPD 自身及其派生插件子进程被误判为卡死进程。
海光 DCU 检测功能需要节点安装 hycu-smi 工具;未安装 hycu-smi 的节点不受影响,DCU 相关 Condition 不会注册。新增 KubeletRootDirMismatch、StoppedProcess 两个 Node Condition,需确认是否纳入告警规则。自适应监控裁剪会自动跳过无 GPU/containerd 节点的无效检测,减少无效检测日志。其余变更不影响已有业务,升级过程中存在组件不可用情况,建议业务低峰期升级。
2026-04-20
1.1.4
1. GPU XID 检测补全:warningXid 新增 XID 13,31,43,45,63,68,94,110,120,137 共 10 个错误码,对齐最新 NVIDIA XID 分类标准,命中后触发 GPUXIDWarningError 永久 Condition。
2. 新增 SRAM Aggregate ECC 错误检测:优先使用 GetSramEccErrorStatus API(Ampere+ 架构),覆盖 nvidia-smi 输出的全部 SRAM ECC 指标(Uncorrectable Parity、SEC-DED、Aggregate Sources 等);Ampere 之前架构回退到 GetMemoryErrorCounter 方式。新增 GPUEccModeError Condition 检测 ECC 模式关闭。
3. GPU 非永久性 Condition 自动恢复:当 NvlinkError、TempError、PowerError 等可恢复告警在后续检查周期中消失时,自动将 Condition 从 True 恢复为 False。
4. StuckProcess 监控修复:修复 StuckProcess Condition 反复翻转 True/False 的问题,包括超时被 SIGKILL 后误返回 OK、两条规则共享 checkpoint 文件互相覆盖、无 D 状态进程时 checkpoint 未清理导致 PID 回收误报。
5. StuckProcess checkpoint 防误清:新增连续空扫描阈值(默认 2 次),防止 IO 压力下单次 /proc 扫描不完整时过早清除 checkpoint。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2026-03-26
1.1.3
1. GPU 掉卡检测增强:GetUUID 后增加 GetTemperature 二次探测半掉卡场景;多个 NVML API 返回 GPU_IS_LOST 时汇总判定为 DeviceLost 永久错误;Power 滑动窗口基于实际采样次数计算阈值而非假设 1 秒/次。
2. ECC 检测补全:新增 SRAM(L2 Cache、Register File)不可纠正错误检测,解决只查 DRAM 导致 SRAM 错误遗漏的问题;新增 GPUEccModeError condition 检测 ECC 模式被关闭。
3. StuckProcess 监控全面修复:修复 PID 复用误报、/proc/PID/stat 解析错位、cgroup v2 不兼容、containerd 节点硬编码 docker inspect 等 9 个缺陷。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2026-03-10
1.1.2
1. 增加日志文件发现的重试机制,避免因临时不可用导致启动失败。
2. 增加候选日志路径回退机制,自动适配不同 Linux 发行版。
3. 改善错误处理和日志输出,便于问题排查。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2026-01-20
1.1.1
问题修复:
1. 修复 GPU 卡异常掉线检测不准确的问题。
2. 修复 systemd_ops 检测日志时间格式匹配不准确的问题。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2026-01-13
1.1.0
主要功能变更:
1. 新增 GPU 硬件监控:支持温度、功率、NVLink、ECC 错误、行重映射、退役页、PCIe 等全面检测。
2. 新增 XID 错误监控:支持致命/警告/应用级 XID 分类检测。
3. 新增 CRI 接口健康检查:检测容器运行时接口健康状态。
4. 新增 NTP 服务监控:支持 ntpd 和 chronyd 两种 NTP 服务。
5. 监控器细粒度控制:支持单独启用/禁用每个监控器。
6. 配置结构优化:重构 values.yaml,按监控类型分组,新增自定义指标配置。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2025-09-05
1.0.6
修复异常上报 FrequentKubeletRestart/FrequentDockerRestart/FrequentContainerdRestart 事件到 node 的问题。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2025-08-19
1.0.5
增强 NPD 的能力,使其在检测到 Pod OOM 时,能够直接将事件上报到对应的 Pod 对象。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2024-12-05
1.0.4
基础镜像升级切换至 TencentOS Server 4 版本,修复 Ubuntu18.08 漏洞,提高镜像安全性。
监控能力增强:新增 Metrics 接口支持,提供 Prometheus 格式的监控指标,便于集成至监控系统。
服务检查优化:修复 Docker 与 Containerd 服务状态检查逻辑,消除因误判导致的冗余警告信息。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。
2023-07-26
1.0.3
内核兼容性修复:解决 Linux 5.4 内核环境下 OOM(Out Of Memory)事件信息获取异常的问题。
此次升级不会对已有业务造成影响,升级过程中存在组件不可用情况,建议业务低峰期升级。