如何配置 prometheus-operator 从 Kubernetes 上的 cAdvisor 收集?

2024-04-21

我在用普罗米修斯操作员 https://github.com/coreos/prometheus-operator管理一个普罗米修斯 https://prometheus.io/部署在我的库伯内斯 https://kubernetes.io/簇。该设置工作正常,可以使用多个 ServiceMonitor 从我的多个应用程序 Pod 中提取指标,这些 ServiceMonitor 选择 Kubernetes 端点,提供发布指标的网络地址。这似乎是 prometheus-operator 的典型(必需?),Prometheus 配置是根据 ServiceMonitors 发现的 Kubernetes 端点为我生成的。

我还希望我的 Prometheus 部署能够检索kubelet 发布的 cAdvisor 指标 http://blog.kubernetes.io/2015/05/resource-usage-monitoring-kubernetes.html在每个集群节点上。我已验证集群上的 kubelet 具有 cAdvisor 并且已启用(通过访问端口 4194 并观察本机 cAdvisor Web 界面)。但是,我缺少的是如何告诉 prometheus-operator 配置我的 Prometheus 部署,目标包括每个 kubelet/cAdvisor 服务器。

我发现的唯一“文档”是prometheus-operator github 问题 https://github.com/coreos/prometheus-operator/issues/261询问为什么某些 cAdvisor 指标are被发现在海报的集群上。该解释表明 kubelet/cAdvisor 的 Kubernetes 端点是由 prometheus-operator 以某种方式创建的,然后附加的 ServiceMonitor 找到它们并导致 Prometheus 配置附加目标。然而,这些 Kubernetes 端点在我的 Kubernetes 集群上并不存在,而且我也没有找到任何关于它们为何存在的信息。

我需要配置什么才能让我的 prometheus-operator 配置的 Prometheus 部署能够获取这些指标?


结果发现有两个问题阻碍了 cAdvisor 指标的收集。

首先,有prometheus-operator 中的一个选项 https://coreos.com/operators/prometheus/docs/latest/user-guides/cluster-monitoring.html#preparing-kubernetes-components必须启用它才能打开创建和维护 kubelet 服务和端点的操作员的功能(因为 kubelet 通常没有这些)。添加后--kubelet-service=kube-system/kubelet --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1对于我的操作员配置,出现了所需的 kubelet 端点(我不确定第二个选项的作用或是否有必要;两者都只是从链接的文档中复制的)。

接下来,必须通过 Prometheus 配置选择 ServiceMonitor。 prometheus-operator 文档中与 kubelet 端点匹配的 ServiceMonitor 有一些标签,但不能保证与现有的 Prometheus 资源定义匹配。更新 ServiceMonitor 的标签使其被现有 Prometheus 选择后,cAdvisor 统计信息很快即可用于 Prometheus 部署。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 prometheus-operator 从 Kubernetes 上的 cAdvisor 收集? 的相关文章

随机推荐