从 DaemonSet 中的每个 Pod 中抓取指标

Posted

技术标签:

【中文标题】从 DaemonSet 中的每个 Pod 中抓取指标【英文标题】:Scraping metrics from every Pod in a DaemonSet 【发布时间】:2021-06-03 06:45:33 【问题描述】:

我们正在使用https://github.com/fluent/fluentd-kubernetes-daemonset 在我们的 K8s 集群中部署 Fluentd。我们在集群中有 5 个节点,这意味着有 5 个 Fluentd pod。

DaemonSet 中的每个 Fluentd pod 通过 fluentd prometheus 插件在 localhost:24231/metrics 端点上公开 Prometheus 指标。我无法找到有关如何配置 Prometheus 以从每个 Pod 的 localhost:24321/metrics 端点收集这些指标的相关文档。

TL;DR

一个 DaemonSet 中有 N 个 pod 每个 pod 都有暴露在 localhost:24321 上的 prometheus 指标

我需要配置 Prometheus,以便它能够以某种方式抓取这些指标。任何有关如何解决此问题的提示或此类配置的示例将不胜感激!

【问题讨论】:

【参考方案1】:

我们的解决方案是使用来自 prometheus 运算符的pod monitors CRD,podMetricEndpoints 指向正确的端口:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: fluentd
spec:
  podMetricsEndpoints:
    - honorLabels: true
      interval: 15s
      path: /metrics
      targetPort: 24231
      scheme: http
  selector:
    matchLabels:
      app: fluentd

【讨论】:

以上是关于从 DaemonSet 中的每个 Pod 中抓取指标的主要内容,如果未能解决你的问题,请参考以下文章

K8S 之使用DaemonSet在每个节点上运行一个POD

K8S中DaemonSet

Kubernetes基础_06_DaemonSet全解析(每个Node都有的Pod)

Kubernetes基础_06_DaemonSet全解析(每个Node都有的Pod)

Kubernetes 学习总结(21)—— 深入理解 Kubernetes 中的 DeamonSet

Kubernetes 学习总结(21)—— 深入理解 Kubernetes 中的 DeamonSet