tencent cloud

文档反馈

NodeProblemDetectorPlus 说明

最后更新时间:2024-02-01 10:15:56

    简介

    组件介绍

    Node-Problem-Detector-Plus 是 Kubernetes 集群节点的健康监测组件。在容器服务 TKE 环境中以 DaemonSet 方式运行,帮助用户实时检测节点上的各种异常情况,并将检测结果报告给上游的 Kube-apiserver。

    部署在集群内的 Kubernetes 对象

    kubernetes 对象名称
    类型
    资源量
    Namespaces
    node-problem-detector
    DaemonSet
    0.5C80M
    kube-system
    node-problem-detector
    ServiceAccount
    -
    kube-system
    node-problem-detector
    ClusterRole
    -
    -
    node-problem-detector
    ClusterRoleBinding
    -
    -

    使用场景

    使用 Node-Problem-Detector-Plus 组件可以监控节点的工作状态,包括内核死锁、OOM、系统线程数压力、系统文件描述符压力等指标,通过 Node Condition 和 Event 的形式上报给 Apiserver。 您可以通过检测相应的指标,提前预知节点的资源压力,可以在节点开始驱逐 Pod 之前手动释放或扩容节点资源压力,防止 Kubernetes 进行资源回收或节点不可用可能带来的损失。

    限制条件

    在集群中使用 NPD,需要在集群内安装该扩展组件,NPD 容器将被限制使用0.5核 CPU,80M内存的系统资源。

    组件权限说明

    权限说明

    该组件权限是当前功能实现的最小权限依赖。

    权限场景

    功能
    涉及对象
    涉及操作权限
    需要在节点遇到故障时上报故障信息,需要修改 node 的 condition
    nodestatus
    patch
    需要发送 event 通知集群
    event
    create/patch/update

    权限定义

    rules:
    - apiGroups:
    - ""
    resources:
    - nodes
    verbs:
    - get
    - apiGroups:
    - ""
    resources:
    - nodes/status
    verbs:
    - patch
    - apiGroups:
    - ""
    resources:
    - events
    verbs:
    - create
    - patch
    - update

    使用方法

    1. 登录 容器服务控制台,在左侧导航栏中选择集群
    2. 在集群管理页面单击目标集群 ID,进入集群详情页。
    3. 选择左侧菜单栏中的组件管理,进入组件列表页面。
    4. 在组件列表页面中选择新建,并在新建组件页面中勾选 Node-Problem-Detector-Plus。
    5. 单击完成即可创建组件。安装成功后,您的集群中会有对应的 node-problem-detector 资源,在 Node 的 Condition 中也会增加相应的条目。

    附录

    Node Conditions

    安装 NPD 插件后,会在节点中增加以下特定的 Conditions:
    Condition Type
    默认值
    描述
    ReadonlyFilesystem
    False
    文件系统是否只读
    FDPressure
    False
    查看主机的文件描述符数量是否达到最大值的80%
    FrequentKubeletRestart
    False
    Kubelet 是否在20Min内重启超过5次
    CorruptDockerOverlay2
    False
    DockerImage 是否存在问题
    KubeletProblem
    False
    Kubelet service 是否 Running
    KernelDeadlock
    False
    内核是否存在死锁
    FrequentDockerRestart
    False
    Docker 是否在20Min内重启超过5次
    FrequentContainerdRestart
    False
    Containerd 是否在20Min内重启超过5次
    DockerdProblem
    False
    Docker service 是否 Running(若节点运行时为 Containerd,则一直为 False)
    ContainerdProblem
    False
    Containerd service 是否 Running(若节点运行时为 Docker,则一直为 False)
    ThreadPressure
    False
    系统目前线程数是否达到最大值的90%
    NetworkUnavailable
    False
    NTP service 是否 Running
    SerfFailed
    False
    分布式检测节点网络健康状态
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持