从 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 中抓取指标的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes基础_06_DaemonSet全解析(每个Node都有的Pod)
Kubernetes基础_06_DaemonSet全解析(每个Node都有的Pod)