2017-07-19 25 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部署使用。