2017-07-19 26 views
1

我正在使用prometheus-operator来管理我的Kubernetes群集上的Prometheus部署。设置工作正常,可以从多个应用程序窗格中提取指标,并使用多个ServiceMonitor选择Kubernetes端点,以提供发布指标的网络地址。使用prometheus-operator似乎是典型的(必需的),Prometheus配置是基于基于ServiceMonitors发现的Kubernetes端点为我生成的。如何将prometheus-operator配置为从Kubernetes上的cAdvisor收集?

我也想我的Prometheus部署检索每个群集节点上的the cAdvisor metrics published by kubelet。我已验证群集上的kubelet具有cAdvisor,并且已启用(通过访问端口4194并观察本地cAdvisor web界面)。然而,我所缺少的是如何告诉prometheus-operator为我的Prometheus部署配置包括这些kubelet/cAdvisor服务器在内的目标。

我在这发现的唯一“文档”是a prometheus-operator github issue问为什么一些cAdvisor指标在发布者的集群上被发现。这个解释表明,Kubernetes kubelet/cAdvisor的端点是由prometheus-operator以某种方式创建的,然后一个额外的ServiceMonitor发现它们并导致Prometheus配置有额外的目标。然而,这些Kubernetes端点并不存在于我的Kubernetes集群中,我还没有找到任何关于它们为什么会这样的信息。

我需要配置什么,以便我的prometheus-operator-configured Prometheus部署可以获得这些指标?

回答

0

原来,这是阻止收集cAdvisor度量标准的两个问题。

首先,有an option in prometheus-operator必须启用打开运营商的功能,创建和维护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部署使用。