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

如何在Prometheus中获取Pod的实际主机名、节点名及IP?

获取Pod实际主机名、节点名及IP的正确方法

你遇到的问题本质是对kube_pod_labels指标的误解——它的pod_label_node_name和pod_label_host_ip是读取Pod自身携带的标签,如果Pod没手动添加这些标签,kube-state-metrics可能会错误带上自身部署节点的信息,导致所有Pod的这两个标签值完全一致。

以下是三种可靠的获取方式:

1. 用kube-state-metrics原生指标关联节点信息

kube-state-metrics提供的kube_pod_info指标自带node标签,直接对应Pod所在的节点名,无需额外处理:

kube_pod_info{namespace="your-target-namespace"}

如果需要节点的IP,可结合kube_node_addresses指标,通过node标签做关联查询:

kube_pod_info{namespace="your-target-namespace"}
* on(node) group_left(address) kube_node_addresses{address_type="InternalIP"}

查询结果会自动为每个Pod添加上对应节点的内部IP。

2. 关联node-exporter获取节点主机名

如果需要节点的主机名(即节点自身的hostname),可以用node-exporter暴露的node_uname_info指标,同样通过node标签和Pod指标关联:

kube_pod_info{namespace="your-target-namespace"}
* on(node) group_left(nodename) node_uname_info

结果中的nodename字段就是Pod所在节点的主机名。

3. 直接从kubelet获取Pod的主机IP

kubelet暴露的kubelet_pod_container_info指标自带host_ip标签,这个值就是Pod实际所在节点的IP,不存在混淆问题:

kubelet_pod_container_info{namespace="your-target-namespace"}

内容的提问来源于stack exchange,提问作者Haris Farooqui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:01:04