我想使用具有多个 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 发现一个目标,并将其容器公开为目标。
有了它,您将能够在新节点出现时从中抓取指标。更多详细信息和示例可在链接的文档中找到。