2

我正在使用prometheus-operator来管理我的Kubernetes集群上的Prometheus部署。该设置可以很好地从我的许多应用程序 pod 中提取指标,使用几个 ServiceMonitor 选择 Kubernetes 端点,提供发布指标的网络地址。正如 prometheus-operator 的典型(必需?)一样,Prometheus 配置是根据基于 ServiceMonitors 发现的 Kubernetes 端点为我生成的。

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

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

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

4

1 回答 1

0

事实证明,有两个问题阻止了 cAdvisor 指标的收集。

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

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

于 2017-07-19T15:52:50.120 回答