You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带NoExecute污点的K8s工作节点部分Prometheus指标未采集

问题解答

是这个NoExecute污点导致的问题,原因如下:

  • 先明确两个指标的来源差异:

    • machine_memory_bytes:这个指标是通过Kubernetes API获取的节点注册元数据(比如节点上报的内存规格),不需要在节点上运行任何采集Pod,只要节点在集群中正常注册就能拿到数据,完全不受节点污点影响。
    • node_memory_*_bytes系列指标:这些是节点的系统级实时内存指标,由node-exporter采集。而node-exporter通常是以DaemonSet方式部署,需要在每个节点上运行Pod。
  • 污点nodeType=runner-node:NoExecute的核心作用是:驱逐所有未配置对应容忍度的Pod,并且拒绝没有容忍度的Pod调度到该节点。如果你的node-exporter DaemonSet没添加对这个污点的容忍配置,那么arc-worker-4节点上要么没有node-exporter Pod,要么Pod被直接驱逐。没有采集Pod自然拿不到任何node_memory_*_bytes系列指标。

  • 快速验证方式:

    • 执行kubectl get pods -n <node-exporter所在命名空间> -o wide | grep arc-worker-4,查看该节点是否有node-exporter Pod运行。
    • 查看node-exporter的DaemonSet配置,检查spec.template.spec.tolerations字段,确认是否包含对nodeType=runner-node:NoExecute的容忍规则。

如果验证后确实是这个原因,给node-exporter的DaemonSet添加对应容忍度即可,示例配置:

tolerations:
- key: "nodeType"
  operator: "Equal"
  value: "runner-node"
  effect: "NoExecute"

内容的提问来源于stack exchange,提问作者Joseph Gagnon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 23:27:16