首页 > 解决方案 > 从节点到 daemonset/kube-prometheus-exporter-node 的标签

问题描述

prometheus-operator 包含 DaemonSet 以将 node-exporter 部署到集群中的每个节点。它有效,但我们缺少一些有用的标签信息,例如:

# kubectl get nodes --all-namespaces --show-labels=true
NAME                            STATUS    ROLES     AGE       VERSION    LABELS
ip-1   Ready     master    2d        v1.10.12   ...,kubernetes.io/role=master,...
=
ip-2   Ready     node      2d        v1.10.12   ...,kubernetes.io/role=node,...

所以我们在标签中有有用的信息——ip-1 是 master,ip-2 是 worker 等等。

但是此信息在节点导出器目标上丢失,因为节点标签不会传播到守护进程节点导出器 pod。

因此,在普罗米修斯中,例如,我不能按节点的类型对节点进行分组。

也许有办法实现这一目标?谢谢!

标签: prometheusprometheus-operatorprometheus-node-exporter

解决方案


看来你需要使用relabel_config

这是一个例子:https ://www.robustperception.io/automatically-monitoring-ec2-instances

PS 至于特定的角色,您也可以在这篇文章中找到有用的:如何为机器角色设置标签

更新:要获取元数据中不可用的其他节点详细信息,可以使用 sidecar 或 init 容器,例如:节点属性示例的 init 容器

此外,使节点标签可用于 pod 是一个开放问题:40610


推荐阅读