Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Monitoring avancé dans Kubernetes avec Prometheus

Monitoring avancé dans Kubernetes avec Prometheus

Avatar for Etienne Coutaud

Etienne Coutaud

October 09, 2019
Tweet

More Decks by Etienne Coutaud

Other Decks in Technology

Transcript

  1. 1 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Monitoring avancé dans k8s Cloud Native Apps - Observabilité : Mise en place et Utilisation des métrique Meetup CNCF @Toulouse v1-102019
  2. 2 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Devops Engineer Kubernetes Expert Freelance Certified Kubernetes Administrator (CKA) CNCF Speaker CNCF Bordeaux Meetup Founder https://github.com/etiennecoutaud @etiennecoutaud whoami : Etienne Coutaud
  3. 3 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io 01 Généralités sur l’observabilité
  4. 4 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Observabilité (n.f.) Qualité de ce qui est observable Phénomène ou processus observable
  5. 5 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Nos SI cachent de la data Les infrastructures de SI cachent 2 types d’informations : • Les informations techniques ◦ Consommation CPU ◦ Espace disques utilisés ◦ Nombre de serveurs ◦ ... • Les information business ◦ Nombre de clients ◦ Age moyen des utilisateurs ◦ ...
  6. 6 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Nécessité de collecter toute les données Load Balancer Service Login Application File message Application Application ...
  7. 7 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Je ne maîtrise pas une plateforme que je ne connais pas.
  8. 10 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io 02 OpenMetrics & Prometheus
  9. 11 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Genèse de Prometheus Créé en 2012 par Reversé à la CNCF en 2016 S’est depuis installé comme système de métrique “by design” 2017
  10. 12 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Les sources de données de Prometheus Tout ce qui expose des métriques au format open metrics : • des métriques systèmes (RAM, CPU, Disk … ) -> Node Exporter • des métriques middleware (db, kafka, control plane k8s … ) -> Exporter spécifique ou métriques by design • des métriques métiers ou spécifiques -> votre code applicatif directement
  11. 13 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Architecture de Prometheus et de ses composants
  12. 14 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Demo Time
  13. 15 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io 03 Kubernetes Prometheus
  14. 17 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Ce déploiement est facilité par la communauté coreos/kube-prometheus coreos/prometheus-operator Contient l’ensemble des manifests nécessaire au déploiement de la stack complète code Go de l’opérateur Prometheus
  15. 18 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    L’opérateur kube-prometheus gère le cycle de vie Boucle de réconciliation + Custom Resource Definition Observe Analyse Act La stack Prometheus est composée de : • un pod Prometheus Server • un pod Grafana La stack Prometheus devrait être composée de : • un pod Prometheus Server • un pod Grafana • un pod AlertManager L’opérateur se charge de résoudre la différence : 1. Démarre un pod AlertManager avec le bonne configuration 2. Reconfigure le Prometheus server pour utiliser ce nouveau composant
  16. 19 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Ce mécanisme nécessite de nouvelles ressources spécifiques (Custom Resource Definition aka CRD) • alertmanager.monitoring.coreos.com • podmonitor.monitoring.coreos.com • prometheuses.monitoring.coreos.com • prometheusrules.monitoring.coreos.com • servicemonitors.monitoring.coreos.com
  17. 20 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Exemple : Prometheus server CRD apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: labels: prometheus: k8s name: k8s namespace: monitoring spec: alerting: alertmanagers: - name: alertmanager-main namespace: monitoring port: web baseImage: quay.io/prometheus/prometheus nodeSelector: kubernetes.io/os: linux replicas: 2 resources: requests: memory: 400Mi ruleSelector: matchLabels: prometheus: k8s role: alert-rules serviceAccountName: prometheus-k8s version: v2.11.0
  18. 21 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Demo Time
  19. 22 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Listing des ressources créées : ➜ (⎈ |cncf_toulouse:monitoring) ~ ▶ kubectl get pods NAME READY STATUS RESTARTS AGE alertmanager-main-0 2/2 Running 0 3h14m alertmanager-main-1 2/2 Running 0 3h14m alertmanager-main-2 2/2 Running 0 3h14m grafana-598f68c777-h49m6 1/1 Running 0 3h14m kube-state-metrics-5c9bd5465b-9tsk5 3/3 Running 0 3h14m node-exporter-7vv2n 2/2 Running 0 3h14m node-exporter-bdnbx 2/2 Running 0 3h14m node-exporter-bhqfl 2/2 Running 0 3h14m prometheus-adapter-74fc6495d7-986x2 1/1 Running 0 3h14m prometheus-k8s-0 3/3 Running 1 3h14m prometheus-k8s-1 3/3 Running 1 3h14m prometheus-operator-658766d58-j64pw 1/1 Running 0 3h14m cluster AlertManager Grafana (dashboard) exporter système sur les noeuds Prometheus server HA Prometheus opérateur agrège et expose métrique propre à k8s permet à k8s d’utiliser des métriques prom
  20. 23 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io 04 Exposer ses propres métriques
  21. 26 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Demo Time
  22. 27 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Bordeaux 33000 > France > www.pyxida.io Conclusion
  23. 28 Pyxida © 2018 - Reproduction interdite sans autorisation préalable

    Take Away • Le monitoring est bon pour la santé, abusez en ! • N'hésitez pas à inclure des métriques métiers à vos applications • Affiner les “alertes” cela prend du temps, c’est répétitif mais nécessaire pour éviter “l’alerte fatigue” • De même que la customisation des dashboards • Prometheus sert de la donnée chaude, une autre architecture est à envisager pour du stockage long terme • le langage PromQL propose plein de fonctions prédéfinies, jouez avec ! • L’opérateur Prometheus vous permet d’affiner votre stratégie vis à vis de vos utilisateurs ! un Prometheus commun ou chacun le sien ? à vous de choisir !