我正在使用prometheus-operator来管理Prometheus群集上的Kubernetes部署。该设置可以很好地从我的许多应用程序窗口中提取指标,使用多个ServiceMonitors选择Kubernetes端点,提供发布度量标准的网络地址。对于prometheus-operator来说,似乎是典型的(必需的?),我会根据基于ServiceMonitors发现的Kubernetes端点为我生成Prometheus配置。
我还希望我的Prometheus部署在每个群集节点上检索the cAdvisor metrics published by kubelet。我已经验证我的集群上的kubelet有cAdvisor并且已启用(通过访问端口4194并观察本机cAdvisor Web界面)。但是,我缺少的是如何告诉prometheus-operator配置我的Prometheus部署目标,包括每个kubelet / cAdvisor服务器。
我在此发现的唯一“文档”是a prometheus-operator github issue,询问为什么在海报群集中发现某些cAdvisor指标 。解释表明kubenetes端点为kubelet / cAdvisor由prometheus-operator以某种方式创建,然后另外一个ServiceMonitor找到它们并导致Prometheus配置其他目标。但是,我的Kubernetes集群上不存在这些Kubernetes端点,而且我没有找到任何有关它们原因的信息。
我需要配置什么才能使我的prometheus-operator配置的Prometheus部署能够获得这些指标?
答案 0 :(得分: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。与prubelet端点匹配的prometheus-operator文档中的ServiceMonitor具有一些标签,但没有任何内容可以保证与已存在的Prometheus资源定义相匹配。在更新ServiceMonitor的标签以使它们被现有的Prometheus选中后,cAdvisor统计数据很快就可用于Prometheus部署。