将 Pod 指标拉取到外部普罗米修斯

Pull pod metrics to external prometheus

我正在尝试使用 EKS 集群内部的所有指标 EC2(CPU、内存、磁盘)和 Pods(CPU、内存、磁盘)现有的普罗米修斯(集群外部)。我开始使用 node-exporter、kube-state-metrics 添加数据,但我一直坚持部署 metrics-server。使用 helm 我确认并安装了它,kube topkubectl get --raw "/apis/metrics.k8s.io/v1beta1/pods" | jq 正在提取数据,但是有人可以建议我如何将所有这些提取到我的外部 Prometheus 吗? 有没有办法将其公开给 /metrics URL? 谢谢!

我认为你最好的选择是使用 prometheus federation。在该设置中,

  1. 您将拥有一个集群内 prometheus 和您原来的外部 prometheus。集群内的 prometheus 进行实际的收集和临时存储。

  2. 在您的外部普罗米修斯中,您将抓取集群内普罗米修斯的 /federate 端点。 /federate 专为您正在尝试的用例而设计

这是实现高效且可靠的指标抓取的最佳方法。通过 apiserver 获取指标不是一个好方法。即使可能,也会给 apiserver 带来不必要的压力。