2017-07-19 2 views
1

Ich verwende prometheus-operator, um eine Prometheus Bereitstellung auf meinem Cluster zu verwalten. Die Einrichtung funktioniert einwandfrei, um Metriken von einer Anzahl meiner Anwendungs-Pods zu extrahieren, wobei mehrere ServiceMonitore verwendet werden, die die Kubernetes-Endpunkte auswählen, die die Netzwerkadresse angeben, bei der Metriken veröffentlicht werden. Wie es für den Prometheus-Operator typisch (erforderlich?) Ist, wird die Prometheus-Konfiguration basierend auf den auf den ServiceMonitoren entdeckten Kubernetes-Endpunkten für mich generiert.Wie kann Prometheus-Operator konfiguriert werden, um von cAdvisor auf Kubernetes zu sammeln?

Ich möchte auch, dass meine Prometheus-Bereitstellung the cAdvisor metrics published by kubelet auf jedem Clusterknoten abruft. Ich habe überprüft, dass Kubetel auf meinem Cluster cAdvisor hat und dass es aktiviert ist (indem man Port 4194 besucht und die native cAdvisor Webschnittstelle beobachtet). Was ich jedoch vermisse, ist, Prometheus-Betreiber zu informieren, meine Prometheus-Bereitstellung mit Zielen zu konfigurieren, die jeden dieser kubelet/cAdvisor-Server enthalten.

Die einzige „Dokumentation“ Ich habe ist a prometheus-operator github issue warum auf dem Plakat des Clusters sind Metriken einige cAdvisor fragen dazu gefunden, entdeckt zu werden. Die Erklärung legt nahe, dass Kubernetes-Endpunkte für kubelet/cAdvisor vom Prometheus-Operator irgendwie erzeugt werden und dann ein zusätzlicher ServiceMonitor sie findet und bewirkt, dass Prometheus mit zusätzlichen Zielen konfiguriert wird. Diese Kubernetes-Endpunkte existieren jedoch nicht in meinem Kubernetes-Cluster und ich habe keine Informationen darüber gefunden, warum sie dies jemals tun würden.

Was muss ich konfigurieren, damit meine von Prometheus-Betreibern konfigurierte Prometheus-Bereitstellung diese Messwerte erhalten kann?

Antwort

0

Es stellte sich heraus, dass zwei Probleme die Erfassung der cAdvisor-Metriken verhinderten.

Zuerst gibt es an option in prometheus-operator, die aktiviert werden muss, um eine Funktion des Betreibers zu aktivieren, der einen Kubelet-Dienst und Endpunkte erstellt und unterhält (da kubelet diese normalerweise nicht hat). Nach dem Hinzufügen von --kubelet-service=kube-system/kubelet --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1 zu meiner Betreiberkonfiguration erschienen die gewünschten kubelet-Endpunkte (ich bin mir nicht sicher, was die zweite Option tut oder wenn es notwendig ist; beide werden nur aus den verknüpften Dokumenten kopiert).

Als nächstes muss der ServiceMonitor durch die Prometheus-Konfiguration ausgewählt werden. Der ServiceMonitor aus dem Prometheus-Operator-Dokument, der den kubelet-Endpunkten entspricht, hat einige Beschriftungen, aber nichts, das garantiert einer bereits vorhandenen Prometheus-Ressourcendefinition entspricht. Nachdem die Etiketten des ServiceMonitors so aktualisiert wurden, dass sie vom vorhandenen Prometheus ausgewählt werden, stehen die cAdvisor-Statistiken für die Prometheus-Bereitstellung schnell zur Verfügung.

Verwandte Themen