# CCE节点故障检测
#### 插件简介
CCE节点故障检测插件（原名NPD）是一款监控集群节点异常事件的插件，以及对接第三方监控平台功能的组件。它是一个在每个节点上运行的守护程序，可从不同的守护进程中搜集节点问题并将其报告给apiserver。NPD可以作为DaemonSet运行， 也可以独立运行。
CCE节点故障检测插件基于社区开源项目node-problem-detector，详细信息请参见[node-problem-detector](https://github.com/kubernetes/node-problem-detector)。
#### 约束与限制
- 使用NPD插件时，不可对节点磁盘进行格式化或分区。
- 节点上每个NPD进程标准占用30mCPU，100MB内存。
- 当NPD插件为1.18.45及以上版本时，不再支持宿主机的操作系统为EulerOS 2.5以下版本。
 
#### 权限说明
NPD插件为监控内核日志，需要读取宿主机/dev/kmsg设备，为此需要开启容器特权，详见[privileged](https://kubernetes.io/docs/concepts/policy/pod-security-policy/#privileged)。
同时CCE根据最小化权限原则进行了风险消减，NPD运行限制只拥有以下特权：
- cap_dac_read_search，为访问/run/log/journal
- cap_sys_admin，为访问/dev/kmsg
 
#### 安装插件
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 单击左侧导航栏的"插件中心"，在右侧找到**CCE节点故障检测**插件，单击"安装"。
3. 在安装插件页面，根据需求选择"规格配置"。 
   您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力，当插件实例所在节点异常时可能导致插件功能无法正常使用，请谨慎选择。
   
   
4. 设置插件支持的"参数配置"。 
   单故障最大节点隔离数：节点批量发生相同故障时，为避免雪崩效应，最多允许被隔离的节点数量。支持按照百分比或个数配置。
   
   
5. 设置插件实例的部署策略。 
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
   - 调度策略对于DaemonSet类型的插件实例不会生效。
   
   - 设置多可用区部署或节点亲和策略时，需保证集群中存在满足调度策略的节点且拥有足够的资源，否则插件实例将无法运行。
    
   表1插件调度配置 
   | 参数   | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 多可用区部署 | - 优先模式：优先将插件的Deployment实例调度到不同可用区的节点上，如集群下节点不满足多可用区，插件实例将调度到单可用区下的不同节点。  - 均分模式：插件Deployment实例均匀调度到当前集群下各可用区，增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署；均分模式限制不同可用区间插件实例数相差不超过1，单个可用区资源不足会导致后续其他实例无法调度。  - 强制模式：插件Deployment实例强制调度到不同可用区的节点上，每个可用区下最多运行一个实例。如集群下节点不满足多可用区，插件实例将无法全部运行。节点故障后，插件实例存在无法迁移风险。                                                                                                    |
   | 节点亲和 | - 不配置：插件实例不指定节点亲和调度。  - 指定节点调度：指定插件实例部署的节点。若不指定，将根据集群默认调度策略进行随机调度。  - 指定节点池调度：指定插件实例部署的节点池。若不指定，将根据集群默认调度策略进行随机调度。  - 自定义亲和策略：填写期望插件部署的节点标签实现更灵活的调度策略，若不填写将根据集群默认调度策略进行随机调度。 同时设置多条自定义亲和策略时，需要保证集群中存在同时满足所有亲和策略的节点，否则插件实例将无法运行。    |
   | 容忍策略  | 容忍策略与节点的污点能力配合使用，允许（不强制）插件的 Deployment 实例调度到带有与之匹配的污点的节点上，也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。 插件会对实例添加针对**node.kubernetes.io/not-ready** 和**node.kubernetes.io/unreachable**污点的默认容忍策略，容忍时间窗为60s。 详情请参见[设置容忍策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0728.html)。                                                                                                                                                                                                                                                                |
      
   
   
6. 单击"安装"。
 
#### 组件说明
表2npd组件 
| 容器组件                  | 说明                   | 资源类型      |
|:---|:---|:---|
| node-problem-controller | 根据故障探测结果提供基础故障隔离能力。 | Deployment |
| node-problem-detector  | 提供节点故障探测能力。           | DaemonSet  |
   
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
node-problem-detector组件包含cceaddon-npd（提供HCE节点故障探测能力）、euler23-cceaddon-npd（提供EulerOS节点故障探测能力）和ubuntu22-cceaddon-npd（提供ubuntu22节点故障探测能力）三种工作负载。插件正常安装并运行后，若您在kube-system命名空间下的工作负载（守护进程集 DaemonSet）中，发现上述三种工作负载的"实例个数"显示为"0/0"，此为正常现象。
该插件采用了动态亲和性调度策略，此现象仅表示当前集群中未创建对应操作系统类型的节点（如 HCE 或 Ubuntu 22.04）。当集群后续接入目标类型的节点时，相应组件会自动拉起实例，对插件的整体运行状态无任何影响。
#### NPD检查项
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
当前检查项仅1.16.0及以上版本的插件支持。
NPD的检查项主要分为事件类检查项和状态类检查项。
- 事件类检查项 对于事件类检查项，当问题发生时，NPD会向APIServer上报一条事件，事件类型分为Normal（正常事件）和Warning（异常事件）
  表3事件类检查项 
  | 故障检查项             | 功能                                                                                                                                                                                                                                                            | 说明                                                                                                                                                                           |
  |:---|:---|:---|
  | OOMKilling       | 监听内核日志，检查OOM事件发生并上报 典型场景：容器内进程使用的内存超过了Limit，触发OOM并终止该进程                                                                                                                                                                          | Warning类事件 监听对象：/dev/kmsg 匹配规则："Killed process \\\\d+ (.+) total-vm:\\\\d+kB, anon-rss:\\\\d+kB, file-rss:\\\\d+kB.\*" |
  | TaskHung          | 监听内核日志，检查taskHung事件发生并上报 典型场景：磁盘卡IO导致进程卡住                                                                                                                                                                                      | Warning类事件 监听对象：/dev/kmsg 匹配规则："task \\\\S+:\\\\w+ blocked for more than \\\\w+ seconds\\\\."                     |
  | ReadonlyFilesystem | 监听内核日志，检查系统内核是否有Remount root filesystem read-only错误 典型场景：用户从ECS侧误操作卸载节点数据盘，且应用程序对该数据盘的对应挂载点仍有持续写操作，触发内核产生IO错误将磁盘重挂载为只读磁盘。 说明： 节点容器存储Rootfs为Device Mapper类型时，数据盘卸载会导致thinpool异常，影响NPD运行，NPD将无法检测节点故障。 | Warning类事件 监听对象：/dev/kmsg 匹配规则："Remounting filesystem read-only"                                                     |
     
  
- 状态类检查项 对于状态类检查项，当问题发生时，NPD会向APIServer上报一条事件，并同步修改节点状态，可配合[Node-problem-controller故障隔离]对节点进行隔离。
  表4系统组件检查 
  | 故障检查项                                                                   | 功能                                                                                                                                                                                                                                           | 说明                                                                                                                                                                                                                                                                                                                                        |
  |:---|:---|:---|
  | 容器网络组件异常 CNIProblem                      | 检查CNI组件（容器网络组件）运行状态                                                                                                                                                                                                                       | 无                                                                                                                                                                                                                                                                                                                                       |
  | 容器运行时组件异常 CRIProblem                    | 检查节点CRI组件（容器运行时组件）Docker和Containerd的运行状态                                                                                                                                                                                                 | 检查对象：Docker或Containerd                                                                                                                                                                                                                                                                                                                   |
  | Kubelet频繁重启 FrequentKubeletRestart        | 通过定期回溯系统日志，检查关键组件Kubelet是否频繁重启                                                                                                                                                                                                             | - 默认阈值：4分钟内重启4次 即在4分钟内组件重启4次表示频繁重启，将会产生故障告警。   - 监听对象：/run/log/journal目录下的日志   说明： Ubuntu和Huawei Cloud EulerOS 2.0操作系统由于日志格式不兼容，暂不支持上述检查项。 |
  | Docker频繁重启 FrequentDockerRestart         | 通过定期回溯系统日志，检查容器运行时Docker是否频繁重启                                                                                                                                                                                                             | - 默认阈值：4分钟内重启4次 即在4分钟内组件重启4次表示频繁重启，将会产生故障告警。   - 监听对象：/run/log/journal目录下的日志   说明： Ubuntu和Huawei Cloud EulerOS 2.0操作系统由于日志格式不兼容，暂不支持上述检查项。 |
  | Containerd频繁重启 FrequentContainerdRestart  | 通过定期回溯系统日志，检查容器运行时Containerd是否频繁重启                                                                                                                                                                                                         | - 默认阈值：4分钟内重启4次 即在4分钟内组件重启4次表示频繁重启，将会产生故障告警。   - 监听对象：/run/log/journal目录下的日志   说明： Ubuntu和Huawei Cloud EulerOS 2.0操作系统由于日志格式不兼容，暂不支持上述检查项。 |
  | Kubelet服务异常 KubeletProblem              | 检查关键组件Kubelet的运行状态                                                                                                                                                                                                                        | 无                                                                                                                                                                                                                                                                                                                                        |
  | KubeProxy异常 KubeProxyProblem           | 检查关键组件KubeProxy的运行状态                                                                                                                                                                                                                        | 无                                                                                                                                                                                                                                                                                                                                        |
  | PodIdentityAgent异常 PodIdentityAgentProblem | 检查关键组件PodIdentityAgent的运行状态（该检查项在插件版本为1.19.50及以上时生效） 说明： 如果集群版本不支持Pod Identity功能（v1.28.15-r80、v1.29.15-r40、v1.30.14-r40、v1.31.14-r0、v1.32.9-r0、v1.33.7-r0、v1.34.2-r0及以上版本支持），NPD中针对PodIdentityAgent异常的告警配置不生效。 | 节点上PodIdentityAgent组件用来根据用户配置给插件或者负载的委托换取临时凭据访问云服务（如EVS），异常后会导致访问云服务功能异常，可能会影响整个集群的业务，需要驱逐该节点上的工作负载。                                                                                                                                                                                                                                    |
     
  表5系统指标 
  | 故障检查项                                                      | 功能                                           | 说明                                                                                                                                                                                                                                                                                                |
  |:---|:---|:---|
  | 连接跟踪表耗尽 ConntrackFullProblem | 检查连接跟踪表是否耗尽                                 | - 默认阈值：90%    - 使用量：nf_conntrack_count  - 最大值：nf_conntrack_max      |
  | 磁盘资源不足 DiskProblem           | 检查节点系统盘、CCE数据盘（包含CRI逻辑盘与Kubelet逻辑盘）的磁盘使用情况 | - 默认阈值：90%  - 数据来源： ``` df -h ```    当前暂不支持检查除节点系统盘、CCE数据盘（包含CRI逻辑盘与Kubelet逻辑盘）外的其他数据盘                                                 |
  | 文件句柄数不足 FDProblem             | 检查系统关键资源FD文件句柄数是否耗尽                         | - 默认阈值：90%  - 使用量：/proc/sys/fs/file-nr中第1个值  - 最大值：/proc/sys/fs/file-nr中第3个值                                 |
  | 节点内存资源不足 MemoryProblem         | 检查系统关键资源Memory内存资源是否耗尽                     | - 默认阈值：80%  - 使用量：/proc/meminfo中MemTotal-MemAvailable  - 最大值：/proc/meminfo中MemTotal                             |
  | 进程资源不足 PIDProblem          | 检查系统关键资源PID进程资源是否耗尽                         | - 默认阈值：90%  - 使用量：/proc/loadavg中第4个值的分母，表示可运行的进程总数  - 最大值：/proc/sys/kernel/pid_max和/proc/sys/kernel/threads-max两者的较小值。   |
     
  表6存储检查 
  | 故障检查项                                                                           | 功能                                                                                                                                                                                                                           | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |:---|:---|:---|
  | 磁盘只读 DiskReadonly                              | 通过定期对节点系统盘、CCE数据盘（包含CRI逻辑盘与Kubelet逻辑盘）进行测试性写操作，检查关键磁盘的可用性                                                                                                                                                                    | 检测路径： - /mnt/paas/kubernetes/kubelet/  - /var/lib/docker/  - /var/lib/containerd/  - /var/paas/sys/log/kubernetes   检测路径下会产生临时文件npd-disk-write-ping 当前暂不支持检查除节点系统盘、CCE数据盘（包含CRI逻辑盘与Kubelet逻辑盘）外的其他数据盘                                                                                                                                                                                                                                                                                      |
  | 节点emptydir存储池异常 EmptyDirVolumeGroupStatusError | 检查节点上临时卷存储池是否正常 故障影响：依赖存储池的Pod无法正常写对应临时卷。临时卷由于IO错误被内核重挂载成只读文件系统。 典型场景：用户在创建节点时配置两个数据盘作为临时卷存储池，用户误操作删除了部分数据盘导致存储池异常。                                               | - 检查周期：30秒  - 数据来源： ``` vgs -o vg_name, vg_attr ```   - 检测原理：检查VG（存储池）是否存在p状态，该状态表征部分PV（数据盘）丢失。  - 节点持久卷存储池异常调度联动：调度器可自动识别此异常状态并避免依赖存储池的Pod调度到该节点上。  - 例外场景：NPD无法检测所有PV（数据盘）丢失，导致VG（存储池）丢失的场景；此时依赖kubelet自动隔离该节点，其检测到VG（存储池）丢失并更新nodestatus.allocatable中对应资源为0，避免依赖存储池的Pod调度到该节点上。无法检测单个PV损坏；此时依赖ReadonlyFilesystem检测异常。                                                                                                                                                                                                |
  | 节点持久卷存储池异常 LocalPvVolumeGroupStatusError         | 检查节点上持久卷存储池是否正常 故障影响：依赖存储池的Pod无法正常写对应持久卷。持久卷由于IO错误被内核重挂载成只读文件系统。 典型场景：用户在创建节点时配置两个数据盘作为持久卷存储池，用户误操作删除了部分数据盘。                                                         | - 检查周期：30秒  - 数据来源： ``` vgs -o vg_name, vg_attr ```   - 检测原理：检查VG（存储池）是否存在p状态，该状态表征部分PV（数据盘）丢失。  - 节点持久卷存储池异常调度联动：调度器可自动识别此异常状态并避免依赖存储池的Pod调度到该节点上。  - 例外场景：NPD无法检测所有PV（数据盘）丢失，导致VG（存储池）丢失的场景；此时依赖kubelet自动隔离该节点，其检测到VG（存储池）丢失并更新nodestatus.allocatable中对应资源为0，避免依赖存储池的Pod调度到该节点上。无法检测单个PV损坏；此时依赖ReadonlyFilesystem检测异常。                                                                                                                                                                                                |
  | 挂载点异常 MountPointProblem                      | 检查节点上的挂载点是否异常 异常定义：该挂载点不可访问（cd） 典型场景：节点挂载了nfs（网络文件系统，常见有obsfs、s3fs等），当由于网络或对端nfs服务器异常等原因导致连接异常时，所有访问该挂载点的进程均卡死。例如集群升级场景kubelet重启时扫描所有挂载点，当扫描到此异常挂载点会卡死，导致升级失败。 | 等效检查命令： ``` for dir in `df -h | grep -v "Mounted on" | awk "{print \\$NF}"`;do cd $dir; done && echo "ok" ```                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | 磁盘卡IO DiskHung                                   | 检查节点上所有磁盘是否存在卡IO，即IO读写无响应 卡IO定义：系统对磁盘的IO请求下发后未有响应，部分进程卡在D状态 典型场景：操作系统硬盘驱动异常或底层网络严重故障导致磁盘无法响应                                                                         | - 检查对象：所有数据盘  - 数据来源： /proc/diskstat 等效查询命令： ``` iostat -xmt 1 ```   - 阈值（需同时满足）： - 平均利用率（ioutil）\>= 0.99  - 平均IO队列长度（avgqu-sz）\>=1  - 平均IO传输量 \<= 1 平均IO传输量 = 每秒完成写次数（iops，单位为w/s）+每秒写数据量（ioth，单位为wMB/s）    说明： 部分操作系统卡IO时无数据变化，此时计算CPU IO时间占用率（iowait） \> 0.8。    |
  | 磁盘慢IO DiskSlow                                  | 检查节点上所有磁盘是否存在慢IO，即IO读写有响应但响应缓慢 典型场景：云硬盘由于网络波动导致慢IO。                                                                                                                                              | - 检查对象：所有数据盘  - 数据来源： /proc/diskstat 等效查询命令 ``` iostat -xmt 1 ```   - 默认阈值： 平均IO时延，await \>= 5000ms    说明： 卡IO场景下该检查项失效，原因为IO请求未有响应，await数据不会刷新。                                                                                                                                                                                                                                                                                                                                     |
     
  表7其他检查 
  | 故障检查项                                                                       | 功能                                                                                                                                                                                                          | 说明                                                                                                                                                                                                                                                                                                                                        |
  |:---|:---|:---|
  | NTP异常 NTPProblem                              | 检查节点时钟同步服务ntpd或chronyd是否正常运行，系统时间是否漂移                                                                                                                                                                      | 默认时钟偏移阈值：8000ms                                                                                                                                                                                                                                                                                                                        |
  | 进程D异常 ProcessD                                  | 检查节点是否存在D进程                                                                                                                                                                                                 | 默认阈值：连续3次存在10个异常进程 数据来源： - /proc/{PID}/stat  - 等效命令：ps aux   例外场景：ProcessD忽略BMS节点下的SDI卡驱动依赖的常驻D进程heartbeat、update  |
  | 进程Z异常 ProcessZ                                  | 检查节点是否存在Z进程                                                                                                                                                                                                | 默认阈值：连续3次存在10个异常进程 数据来源： - /proc/{PID}/stat  - 等效命令：ps aux   例外场景：ProcessD忽略BMS节点下的SDI卡驱动依赖的常驻D进程heartbeat、update  |
  | RDMA网卡异常                                                                    | 检查节点上RDMA网卡状态 说明： NPD在1.19.37及以上版本中新增了对RDMA网卡的异常检测功能，并会在节点上标注RDMAProblem状态。由于该状态由NPD主动写入节点对象，若回退到不支持此功能的旧版本，NPD不再具备清理该状态的能力，因此已标注的状态将保留。                                       | 默认阈值：连续1次存在1个RDMA网卡异常 数据来源： - 命令：**rdma link show**                                                                                                                                                            |
  | ResolvConf配置文件异常 ResolvConfFileProblem        | 检查ResolvConf配置文件是否丢失 检查ResolvConf配置文件是否异常 异常定义：不包含任何上游域名解析服务器（nameserver）。                                                                      | 检查对象：/etc/resolv.conf                                                                                                                                                                                                                                                                                                                      |
  | 存在计划事件 ScheduledEvent                        | 检查节点是否存在热迁移计划事件。热迁移计划事件通常由硬件故障触发，是IaaS层的一种自动故障修复手段。 典型场景：底层宿主机异常，例如风扇损坏、磁盘坏道等，导致其上虚机触发热迁移。                                                                                  | 数据来源： - http://169.254.169.254/meta-data/latest/events/scheduled   该检查项为Alpha特性，默认不开启。                                                                                                                      |
  | 竞价节点中断回收中 SpotPriceNodeReclaimNotification | 检查竞价实例节点是否被抢占而处于中断回收状态                                                                                                                                                                                      | 默认检查周期：120秒 默认故障应对策略：驱逐节点负载                                                                                                                                                                                                                                                                                |
  | 文件系统只读异常 ReadonlyFilesystemProblem              | 监听内核日志，检查系统内核是否有Remount root filesystem read-only错误。 说明： NPD在1.19.75及以上版本中新增了在节点上标注ReadonlyFilesystemProblem状态。由于该状态由NPD主动写入节点对象，若回退到不支持此功能的旧版本，NPD不再具备清理该状态的能力，因此已标注的状态将保留。 | 监听对象：/dev/kmsg 匹配规则：Remounting filesystem read-only                                                                                                                                                                                                                                                          |
  | Systemd组件异常 SystemdOfflineProblem             | 检查节点systemd是否正常运行。 说明： NPD在1.19.75及以上版本中新增了对systemd的异常检测功能，在节点上标注SystemdOfflineProblem状态。由于该状态由NPD主动写入节点对象，若回退到不支持此功能的旧版本，NPD不再具备清理该状态的能力，因此已标注的状态将保留。                    | 通过systemctl is-active default.target检查systemd默认启动目标的运行状态。                                                                                                                                                                                                                                                                               |
     
  另外kubelet组件内置如下检查项，但是存在不足，您可通过集群升级或安装NPD进行补足。
  表8Kubelet内置检查项 
  | 故障检查项                                              | 功能                                | 说明                                                                                                                                                                                                                                                                                                                                                                 |
  |:---|:---|:---|
  | PID资源不足 PIDPressure     | 检查PID是否充足                       | - 周期：10秒  - 阈值：90%  - 缺点：社区1.23.1及以前版本，该检查项在pid使用量大于65535时失效，详见[issue 107107](https://github.com/kubernetes/kubernetes/issues/107107)。社区1.24及以前版本，该检查项未考虑thread-max。   |
  | 内存资源不足 MemoryPressure | 检查容器可分配空间（allocable）内存是否充足      | - 周期：10秒  - 阈值：最大值-100MiB  - 最大值（Allocable）：节点总内存-节点预留内存  - 缺点：该检测项没有从节点整体内存维度检查内存耗尽情况，只关注了容器部分(Allocable)。        |
  | 磁盘资源不足 DiskPressure | 检查kubelet盘和docker盘的磁盘使用量及inodes使用量 | - 周期：10秒  - 阈值：90%                                                                                                                                                                                                                       |
     
  
 
 #### Node-problem-controller故障隔离
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
故障隔离仅1.16.0及以上版本的插件支持。
默认情况下，若多个节点发生故障，NPC至多为10%的节点添加污点，可通过参数npc. maxTaintedNode提高数量限制。
开源NPD插件提供了故障探测能力，但未提供基础故障隔离能力。对此，CCE在开源NPD的基础上，增强了Node-problem-controller（节点故障控制器组件，简称NPC），该组件参照Kubernetes[节点控制器](https://kubernetes.io/zh/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions)实现，针对NPD探测上报的故障，自动为节点添加污点以进行基本的节点故障隔离。
表9参数说明 
| 参数              | 说明                                                                               | 默认值                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| npc.enable       | 是否启用npc 1.18.0及以上版本不再支持该参数                           | true                                                                                                                                                                                                                                                         |
| npc.maxTaintedNode | 单个故障在多个节点间发生时，限制多少节点允许被npc添加污点，避免雪崩效应 支持int格式和百分比格式 | 10% 值域： - int格式，数值范围为1到无穷大  - 百分比格式，数值范围为1%到100%，与集群节点数量乘积计算后最小值为1。   |
| npc.nodeAffinity | Controller的节点亲和性配置                                                                   | N/A                                                                                                                                                                                                                                                        |
   
#### 查看NPD事件
NPD上报的事件可以在节点管理页面查询。
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"节点管理"，在节点所在行单击"事件"，可查看节点相关事件。 
   图1查看节点事件   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001918522422.png "点击放大")
   
   
 
#### 配置NPD指标告警
针对NPD状态类检查项，您可以通过配置告警规则，在出现异常状态时及时通过短信、邮箱等方式通知到您。关于创建自定义告警规则的步骤，请参见[通过告警中心一键配置告警](https://support.huaweicloud.com/usermanual-cce/cce_10_0724.html)。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
如果您需要使用NPD检查项配置告警规则，集群中需要安装"云原生监控插件"，且该插件已对接AOM实例。
#### Prometheus指标采集
NPD 守护进程POD通过端口19901暴露Prometheus metrics指标，NPD Pod默认被注释metrics.alpha.kubernetes.io/custom-endpoints: '\[{"api":"prometheus","path":"/metrics","port":"19901","names":""}\]'。您可以自建Prometheus采集器识别并通过http://{{NpdPodIP}}:{{NpdPodPort}}/metrics路径获取NPD指标。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
NPD插件为1.16.5版本以下时，Prometheus指标的暴露端口为20257。
目前指标信息包含异常状态计数problem_counter与异常状态problem_gauge，如下所示：
```
# HELP problem_counter Number of times a specific type of problem have occurred.
# TYPE problem_counter counter
problem_counter{reason="DockerHung"} 0
problem_counter{reason="DockerStart"} 0
problem_counter{reason="EmptyDirVolumeGroupStatusError"} 0
...
# HELP problem_gauge Whether a specific type of problem is affecting the node or not.
# TYPE problem_gauge gauge
problem_gauge{reason="CNIIsDown",type="CNIProblem"} 0
problem_gauge{reason="CNIIsUp",type="CNIProblem"} 0
problem_gauge{reason="CRIIsDown",type="CRIProblem"} 0
problem_gauge{reason="CRIIsUp",type="CRIProblem"} 0
..
```
#### 相关文档
安装CCE节点故障检测插件后，您可以对节点故障检测策略进行自定义配置，支持筛选节点检测范围或调整故障阈值等，详情请参见[配置节点故障检测策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0659.html)。
#### 版本记录
表10CCE节点故障检测插件版本记录 
| 插件版本      | 支持的集群版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 更新特性                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 社区版本                                                                                 |
|:---|:---|:---|:---|
| 1.19.63    | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35 v1.36 | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.19.58   | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35 v1.36      | 支持CCE v1.36集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)      |
| 1.19.56   | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35      | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)     |
| 1.19.54    | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35         | 支持CCE v1.35集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)      |
| 1.19.52    | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34                                                                   | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10) |
| 1.19.39   | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34                                                                 | 支持CCE v1.34集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)  |
| 1.19.37 | v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33                                                               | NPD支持RDMA网卡状态检测                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.19.33   | v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33                                                                 | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10) |
| 1.19.29  | v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33                                                                   | 支持CCE v1.33集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.19.25   | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31 v1.32                                                                      | 支持CCE v1.32集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.19.20    | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31                                                                                                                                            | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.19.16    | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 v1.31      | 支持CCE v1.31集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.19.11     | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30                                                                 | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)  |
| 1.19.8     | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30                                                                | - 兼容单系统盘  - 支持插件实例AZ反亲和配置  - 支持在竞价实例被释放前给节点加污点，驱逐节点上的pod  - 插件挂载节点时区  - 适配CCE v1.30集群                                                                                                                                                                                                                                      | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.19.1    | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29                                                                                                                                 | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10) |
| 1.19.0     | v1.21 v1.23 v1.25 v1.27 v1.28                                                                                                                                                                                                              | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.18.48  | v1.21 v1.23 v1.25 v1.27 v1.28                                                                                                                                                                                                   | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)  |
| 1.18.46   | v1.21 v1.23 v1.25 v1.27 v1.28                                                                                                                                                                                                   | 适配CCE v1.28版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)  |
| 1.18.24  | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                      | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.18.23  | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                  | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.18.22   | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                   | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.18.21 | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)  |
| 1.18.18   | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                | 适配CCE v1.27集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.18.14    | v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                                                                                         | - 支持插件实例AZ反亲和配置  - 支持在竞价实例被释放前给节点加污点，驱逐节点上的pod  - 插件挂载节点时区                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)   |
| 1.18.10    | v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                                                                                        | - 配置界面优化  - 优化DiskSlow检查项，支持阈值配置  - 优化NTPProblem检查项，支持阈值配置  - 支持插件实例AZ反亲和配置  - 支持竞价实例中断检测，中断前驱逐节点上的pod                                                                                                                                                                                                        | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.17.4      | v1.17 v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                        | 优化DiskHung检查项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.17.3     | v1.17 v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                               | - NPC最大可打污点节点数支持百分比配置  - 新增进程Z状态检查项ProcessZ  - 优化NTPProblem检查项，支持检测时间偏差  - 修复BMS节点场景存在常驻D状态进程，干扰ProcessD检查项                                                                                                                                                                                                                                                                                                                              | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)  |
| 1.17.2     | v1.17 v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                            | - 新增磁盘卡IO检查项DiskHung  - 新增磁盘慢IO检查项DiskSlow  - 新增进程D状态检查项ProcessD  - 新增挂载点健康检查MountPointProblem  - 避免与Service端口范围冲突，默认健康检查监听端口修改为19900，默认Prometheus指标暴露端口修改为19901。  - 新增支持1.25集群版本   | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)     |
| 1.16.4     | v1.17 v1.19 v1.21 v1.23                                                                                                                                                                                                                                                                     | - 新增beta检查项ScheduledEvent，支持通过metadata接口检测宿主机异常导致虚拟机进行冷热迁移事件。该检查项默认不开启。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)     |
| 1.16.3   | v1.17 v1.19 v1.21 v1.23                                                                                                                                                                                                                                                                        | 新增ResolvConf配置文件检查。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)      |
| 1.16.1     | v1.17 v1.19 v1.21 v1.23                                                                                                                                                                                                                                                                         | - 新增node-problem-controller。支持基本故障隔离能力。  - 新增PID、FD、磁盘、内存、临时卷存储池、持久卷存储池检查项。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)    |
| 1.15.0   | v1.17 v1.19 v1.21 v1.23                                                                                                                                                                                                                                                                       | - 检测项全面加固，避免误报。  - 支持内核巡检。支持OOMKilling事件，TaskHung事件上报。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [0.8.10](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.8.10)     |
| 1.14.11  | v1.17 v1.19 v1.21                                                                                                                                                                                                                                                                                                                                     | 适配CCE v1.21集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)     |
| 1.14.5     | v1.17 v1.19                                                                                                                                                                                                                                                                                                                                                                                                      | 修复监控指标无法被获取的问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)        |
| 1.14.4   | v1.17 v1.19                                                                                                                                                                                                                                                                                                                                                                                                    | - 适配ARM64节点部署  - 适配containerd运行时节点                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)      |
| 1.14.2     | v1.17 v1.19                                                                                                                                                                                                                                                                                                                                                                                                     | - 适配CCE v1.19集群  - 新增支持Ubuntu操作系统和安全容器场景                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)     |
| 1.13.8    | v1.15.11 v1.17                                                                                                                                                                                                                                                                                                                                                                                                   | - 修复容器隧道网络下CNI健康检查问题  - 调整资源配额                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)       |
| 1.13.6     | v1.15.11 v1.17                                                                                                                                                                                                                                                                                                                                                                                                      | 修复僵尸进程未被回收的问题                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)       |
| 1.13.5   | v1.15.11 v1.17                                                                                                                                                                                                                                                                                                                                                                                                     | 增加污点容忍配置                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)     |
| 1.13.2     | v1.15.11 v1.17                                                                                                                                                                                                                                                                                                                                                                                                    | 增加资源限制，增强cni插件的检测能力                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | [0.7.1](https://github.com/kubernetes/node-problem-detector/releases/tag/v0.7.1)      |
   
