更新时间:2024-11-06 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
          }
        ]
      }
    }
  }
}