更新时间:2025-03-04 GMT+08:00

CCE节点故障检测

插件介绍

CCE节点故障检测插件(node-problem-detector,简称NPD)是一款监控集群节点异常事件的插件,以及对接第三方监控平台功能的组件。它是一个在每个节点上运行的守护程序,可从不同的守护进程中搜集节点问题并将其报告给apiserver。node-problem-detector可以作为DaemonSet运行, 也可以独立运行。

字段说明

表1 参数描述

参数

是否必选

参数类型

描述

basic

否

object

插件基础配置参数,无需指定。

flavor

是

表2 object

插件规格参数

custom

是

表3 object

插件自定义参数

表2 flavor

参数

是否必选

参数类型

描述

description

否

String

插件相关的描述信息

name

是

String

插件规格名称,固定为:Single-instance

replicas

是

String

实例数,默认为:1

resources

是

resources object

容器资源(CPU、内存)配额。

表3 custom

参数

是否必选

参数类型

描述

feature_gate

否

String

特性开关,管理开启beta特性

multiAZBalance

否

Bool

多可用区部署

multiAZEnabled

否

Bool

是否多可用区部署,默认为false,如果为true,则强制跨可用区部署,若为false,则优先跨可用区部署。

npc

是

object 表5 npc

node-problem-controller的配置

tolerations

否

List<Object> 表6 tolerations污点

插件的污点容忍策略

node_match_expressions

否

List<Object> 表7 nodeMatchExpression

插件的节点亲和配置

表4 resources字段数据结构说明

参数

是否必选

参数类型

描述

limitsCpu

是

String

CPU大小限制,单位:m

limitsMem

是

String

内存大小限制,单位:Mi

name

是

String

模板名称,固定为:custom-resources

requestsCpu

是

String

申请的CPU大小,单位:m

requestsMem

是

String

申请的内存大小,单位:Mi

表5 npc字段数据结构说明

参数

是否必选

参数类型

描述

maxTaintedNode

是

String or Int

单个故障在多个节点间发生时,至多多少节点允许被npc添加污点,避免雪崩效应。

支持int格式和百分比格式。

表6 tolerations污点

参数

是否必选

参数类型

描述

key

否

String

污点键

effect

否

String

污点策略

operator

否

String

操作符

tolerationSeconds

否

Int

容忍时间窗

表7 nodeMatchExpresssion节点亲和配置

参数

是否必选

参数类型

描述

key

否

String

污点键

values

否

List<String>

节点亲和的名称

operator

否

String

操作符

请求示例

{
  "kind": "Addon",
  "apiVersion": "v3",
  "metadata": {
    "annotations": {
      "addon.install/type": "install"
    }
  },
  "spec": {
    "clusterID": "b78fb690-b82c-11ee-83cf-0255ac100b0f",
    "version": "1.18.48",
    "addonTemplateName": "npd",
    "values": {
      "basic": {
        "image_version": "1.18.48",
        "swr_addr": "***",
        "swr_user": "***",
        "rbac_enabled": true,
        "cluster_version": "v1.23"
      },
      "flavor": {
        "description": "custom resources",
        "name": "custom-resources",
        "replicas": 2,
        "resources": [
          {
            "limitsCpu": "100m",
            "limitsMem": "300Mi",
            "name": "node-problem-controller",
            "requestsCpu": "30m",
            "requestsMem": "100Mi"
          },
          {
            "limitsCpu": "100m",
            "limitsMem": "300Mi",
            "name": "node-problem-detector",
            "requestsCpu": "30m",
            "requestsMem": "100Mi"
          }
        ],
        "category": [
          "CCE",
          "Turbo"
        ]
      },
      "custom": {
        "annotations": {},
        "common": {},
        "feature_gates": "",
        "multiAZBalance": false,
        "multiAZEnabled": false,
        "node_match_expressions": [],
        "npc": {
          "maxTaintedNode": "10%"
        },
        "tolerations": [
          {
            "key": "node.kubernetes.io/not-ready",
            "operator": "Exists",
            "effect": "NoExecute",
            "tolerationSeconds": 60
          },
          {
            "key": "node.kubernetes.io/unreachable",
            "operator": "Exists",
            "effect": "NoExecute",
            "tolerationSeconds": 60
          }
        ]
      }
    }
  }
}