Prometheus 会自动从 kubernetes 中的多个 kube-state-metrics 中抓取指标吗?

Prometheus 会自动从 kubernetes 中的多个 kube-state-metrics 中抓取指标吗?

我想使用具有多个 kube-state-metrics 的 kubernetes(cluster-0) 来监控多个其他 kubernetes 集群(cluster-1,2,3,4)

在(cluster-0)中,我将其分成多个命名空间,如下所示:

namespace: monitor

(here I will run prometheus to scrape metrics from other kube-state-metrics pod)
namespaces: cluster-0
(here I will run kube-state-metrics pod to monitor cluster-0
....
namespaces: cluster-4
(here I will run kube-state-metrics pod to monitor cluster-4)
...

等等...

这里的问题是如何设置 prometheus 来自动抓取新的 kube-state-metrics,因为我将非常快速地扩展或缩小 kubernetes 集群。以及如何区分它们之间的不同指标,例如具有标题...

我曾尝试使用配置,但仅定位单个- targets: ['serviceIP:8080']对我来说并不是很好。

答案1

正如我在评论中提到的那样。你需要的是Kubernetes 上的 Prometheus 自我发现

Kubernetes 自我发现配置允许在出现新目标时自动检索抓取目标。抓取基于 Kubernetes 服务名称,因此即使 IP 地址发生变化(并且会发生变化),Prometheus 也可以无缝抓取目标。

Prometheus 自我发现基于 Kubernetes 标签和注释的解释这里。这允许在选择要抓取的应用程序时具有很大的粒度。了解角色字段也很重要,因为它定义了抓取作业的行为。角色定义您希望 Prometheus 查找的 Kubernetes 资源类型。目前它可以是端点、服务、pod、节点或入口。例如,如果将角色设置为 pod,Prometheus 将为每个 pod 发现一个目标,并将其容器公开为目标。

有了它,您将能够在新节点出现时从中抓取指标。更多详细信息和示例可在链接的文档中找到。

相关内容