2017-07-19 2 views
1

J'utilise prometheus-operator pour gérer un déploiement Prometheus sur mon cluster Kubernetes. La configuration fonctionne correctement pour extraire les métriques d'un certain nombre de mes modules d'application, en utilisant plusieurs ServiceMonitors qui sélectionnent les points de terminaison Kubernetes en indiquant l'adresse réseau sur laquelle les métriques sont publiées. Comme cela semble être typique (requis?) Avec l'opérateur prometheus, la configuration de Prometheus est générée pour moi en fonction des points de terminaison Kubernetes découverts basés sur les ServiceMonitors.Comment l'opérateur prometheus peut-il être configuré pour être collecté à partir de cAdvisor sur Kubernetes?

Je voudrais également que mon déploiement Prometheus récupère the cAdvisor metrics published by kubelet sur chaque nœud de cluster. J'ai vérifié que kubelet sur mon cluster a cAdvisor et qu'il est activé (en visitant le port 4194 et en observant l'interface web native de cAdvisor). Cependant, ce qui me manque, c'est comment dire à Prometheus-Operator de configurer mon déploiement Prometheus avec des cibles incluant chacun de ces serveurs kubelet/cAdvisor.

La seule "documentation" que j'ai trouvée sur ceci est a prometheus-operator github issue demandant pourquoi certaines statistiques de cAdvisor sont étant découvertes sur le cluster de l'affiche. L'explication suggère que les points finaux Kubernetes pour kubelet/cAdvisor sont créés par l'opérateur prometheus d'une façon ou d'une autre et qu'un ServiceMonitor supplémentaire les trouve et fait que Prometheus soit configuré avec des cibles supplémentaires. Cependant, ces points de terminaison Kubernetes n'existent pas sur mon cluster Kubernetes et je n'ai trouvé aucune information sur leur raison d'être.

Que dois-je configurer pour que mon déploiement Prometheus configuré par l'opérateur prometheus puisse obtenir ces mesures?

Répondre

0

Il s'est avéré que deux problèmes empêchaient la collecte des métriques cAdvisor.

Tout d'abord, an option in prometheus-operator doit être activé pour activer une fonctionnalité de l'opérateur qui crée et maintient un service de kubelet et des points de terminaison (puisque kubelet ne les possède pas normalement). Après avoir ajouté --kubelet-service=kube-system/kubelet --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1 à ma configuration d'opérateur, les points de terminaison de kubelet souhaités sont apparus (je ne suis pas sûr de ce que fait la deuxième option ou si c'est nécessaire, les deux sont simplement copiés à partir des documents liés).

Ensuite, le ServiceMonitor doit être sélectionné par la configuration Prometheus. Le ServiceMonitor des documents prometheus-operator qui correspond aux points de terminaison kubelet a des étiquettes mais rien qui soit garanti pour correspondre à une définition de ressource Prometheus déjà existante. Après avoir mis à jour les étiquettes de ServiceMonitor pour qu'elles soient sélectionnées par le Prometheus existant, les statistiques cAdvisor deviennent rapidement disponibles pour le déploiement de Prometheus.