Choisissez le bon outil pour une surveillance réussie de Kubernetes !
Kubernetes est une plateforme open-source prête à la production, conçue à partir de l’expérience acquise par Google en matière d’orchestration de conteneurs, associée aux meilleures idées du public. Elle vise à automatiser le déploiement, la mise à l’échelle et l’exploitation des conteneurs d’applications.
Avec les méthodes modernes de création et d’exécution des applications, vos stratégies de contrôle et d’observabilité doivent évoluer, tout comme les outils que vous utilisez. Les outils traditionnels de surveillance de l’infrastructure peuvent ne pas être suffisants, et vous avez besoin d’un système de surveillance Kubernetes spécialisé, comme indiqué ci-dessous.
Certains vous aident avec les journaux et d’autres avec les métriques. Certains offrent une interface pour exploiter Kubernetes à partir d’une vue d’ensemble. Certains sont natifs de Kubernetes, tandis que d’autres sont plus agnostiques.
Explorons les outils suivants pour surveiller Kubernetes.
Prometheus Grafana
Prometheus est l’un des outils de surveillance les plus populaires et les plus performants utilisés avec Kubernetes. Cet outil a été développé par SoundCloud et a ensuite été donné à la CNCF. Il s’inspire de Google Borg Monitor.
Prometheus stocke toutes ses données sous forme de séquence temporelle. En résumé, ce qui distingue Prometheus des autres bases de données de séries temporelles, ce sont ses mécanismes d’alerte intégrés, son modèle de données multidimensionnel, son modèle pull vs. push, PromQL (le langage d’interrogation de Prometheus) et, bien sûr, sa communauté en constante expansion.
Voici quelques autres caractéristiques de Prometheus :
- Pas de dépendance à l’égard du stockage distribué ;
- Les cibles sont découvertes par le biais de la découverte de services ou de la configuration statique.
- PromQL, un langage d’interrogation flexible pour tirer parti de cette dimensionnalité
- Les nœuds de serveurs uniques sont autonomes
- La collecte des séries temporelles s’effectue par le biais d’un modèle d’extraction sur HTTP
- La poussée des séries temporelles est prise en charge par une passerelle intermédiaire
- Un modèle de données multidimensionnel avec des données de séries temporelles analysées par nom de métrique et paires clé/valeur
- Et de multiples formes de graphiques et de tableaux de bord
La meilleure façon d’apprendre Prometheus est de l’installer sur votre serveur de développement et de jouer avec. Ils ont une excellente documentation, mais si vous êtes à la recherche d’un apprentissage basé sur la vidéo, regardez ce cours Udemy.
Vous pouvez utiliser Kube Prometheus, qui offre une surveillance de cluster de bout en bout. Vous pouvez également utiliser Kube State Metrics pour exposer l’état des objets.
Et pour visualiser les données, vous pouvez utiliser Grafana.
Grafana est utilisé pour visualiser les métriques, mais c’est aussi un outil d’alerte. Grafana peut émettre une alerte sur Slack, webhook, mail, ou d’autres canaux de communication. Une autre raison clé est la source de vos données : Grafana peut interroger plusieurs entités simultanément.
Vous pouvez interroger les métriques Prometheus à partir de Grafana et les visualiser, créer un tableau de bord et définir des alertes selon vos besoins. Grafana dispose d’un plugin pour Kubernetes et d’un magnifique tableau de bord.
En combinant Prometheus et Grafana, vous pouvez atteindre un excellent niveau de surveillance Kubernetes pour votre système de production.
Checkmk
La dernière version de Checkmk comprend une surveillance Kubernetes entièrement remaniée, qui vous permet d’analyser et de surveiller instantanément les interrelations dynamiques des infrastructures de conteneurs. Cela permet une surveillance approfondie de tous vos objets Kubernetes et est très simple à utiliser.
Vous n’avez pas besoin d’expérience préalable avec les infrastructures dynamiques et vous pouvez configurer la surveillance de Kubernetes en quelques minutes. Checkmk ajoute automatiquement tous vos objets Kubernetes et peut surveiller les actifs Kubernetes tels que les clusters, les codes, les déploiements, les pods, les volumes, les espaces de noms, les daemonSets et les statefulSets.
La surveillance fournit toutes les données pertinentes dans des tableaux de bord préconfigurés. Cela vous permet de détecter les goulots d’étranglement et les anomalies dans la consommation des ressources en quelques minutes. Vous pouvez également créer vos propres vues personnalisées. Naviguez dans plusieurs vues en cliquant simplement sur les différents éléments.
La façon la plus simple de déployer Checkmk dans Kubernetes est d’utiliser un dépôt helm. tribe29 fournit un modèle que les utilisateurs peuvent adapter à leur propre environnement. Vous pouvez suivre ce tutoriel vidéo pour Kubernetes et commencer par un essai gratuit de Checkmk Enterprise Edition.
Checkmk ne s’arrête pas là, bien sûr. Avec plus de 2 000 plugins prêts à l’emploi, vous pouvez surveiller n’importe quel aspect de votre infrastructure informatique avec un seul outil. Allez au fond des problèmes et analysez l’interrelation de votre système hôte Kubernetes et de vos conteneurs orchestrés, par exemple. Avec Checkmk, vous obtenez des informations approfondies sur le processeur, la mémoire, la bande passante du réseau et d’autres paramètres.
La visualisation des données et la communication des alertes s’adaptent aux besoins des différentes équipes. Checkmk peut également s’intégrer à d’autres outils de surveillance tels que Prometheus, ntop ou Datadog. Vous disposez ainsi de toutes les informations en un seul endroit et vous pouvez vous assurer que les informations sont automatiquement partagées.
Voici quelques-unes des autres fonctionnalités de Checkmk :
- Des alertes intelligentes qui comprennent les capacités d’auto-réparation de Kubernetes et mettent en évidence les conditions critiques uniquement lorsqu’une action est vraiment nécessaire
- Puissant collecteur de cluster Kubernetes pour obtenir toutes les données dont vous avez besoin
- Prise en charge du chiffrement TLS pour sécuriser votre surveillance
Checkmk est extrêmement évolutif grâce à son noyau de surveillance haute performance et à sa capacité à prendre en charge la surveillance distribuée.
Kubewatch
Kubewatch est un observateur de Kubernetes qui publie des notifications d’événements dans un canal Slack. Cet outil vous permet de déterminer les ressources que vous devez surveiller. Il est créé en Golang et utilise une bibliothèque client Kubernetes pour se connecter à un serveur API Kubernetes. Cette bibliothèque sert de base à l’observation des événements Kubernetes.
kubewatch est simple à configurer et peut être déployé en utilisant soit helm soit system deployment. Plus clairement, kubewatch verra les changements nécessaires aux ressources Kubernetes spécifiques que vous souhaitez qu’il surveille – déploiements, ensembles de démons, pods, services, ensembles de répliques, services, contrôleurs de réplication, secrets et cartes de configuration.
Jaeger
Le traçage distribué se développe régulièrement dans la surveillance et le dépannage des environnements Kubernetes. Jaeger est un système de traçage publié par Uber Technologies. Il est utilisé pour la surveillance des transactions et le dépannage dans les systèmes distribués complexes.
Jaeger propose une instrumentation basée sur OpenTracing pour Java, Python, Node et C . Il utilise un échantillonnage initial cohérent avec des probabilités individuelles par service/point de terminaison et prend en charge plusieurs backends de stockage – Cassandra, Elasticsearch, Kafka et la mémoire.
Voici quelques-unes des autres caractéristiques de Jaeger :
- Surveillance des transactions distribuées
- Propagation du contexte distribué
- Optimisation des performances et de la latence
- Analyse des causes profondes
- Analyse de la dépendance des services
cAdvisor
cAdvisor est conçu pour rassembler, traiter et exporter des informations sur l’utilisation des ressources et la production des conteneurs en cours d’exécution. Il est également développé dans Kubernetes et intégré dans le binaire Kubelet. Il est simple à utiliser (il expose les métriques Prometheus dès le départ) mais n’est pas assez robuste pour être reconnu comme une solution de surveillance complète.
Contrairement à d’autres, cAdvisor n’est pas déployé par pod mais au niveau du nœud. Il déterminera automatiquement tous les conteneurs fonctionnant sur un système et collectera les métriques du système telles que la mémoire, le CPU, le réseau, etc.
cAdvisor est un outil de base, et voici quelques-unes de ses caractéristiques.
- Prise en charge native des conteneurs Docker et d’autres types de conteneurs.
- Prise en charge de l’exportation des statistiques vers divers plugins de stockage, par exemple InfluxDB, etc,
- Il fournit l’utilisation globale de la machine en analysant le conteneur “root” sur la machine.
- Prise en charge de l’exécution autonome en dehors du conteneur Docker ou de tout autre conteneur.
- cAdvisor fonctionne par nœud. Il découvre automatiquement tous les conteneurs dans le nœud donné et collecte les statistiques d’utilisation du CPU, du système de fichiers et du réseau. Vous pouvez visualiser les métriques sur l’interface Web, qui exporte des informations en direct sur tous les conteneurs du système.
Téléprésence
Telepresence vous permet d’exécuter un service particulier localement tout en connectant ce service à un cluster Kubernetes distant. Cela permet aux développeurs travaillant sur des opérations multiservices d’adopter n’importe quel outil installé localement pour vérifier/déboguer/modifier votre service. Par exemple, vous pouvez exécuter un débogueur ou un IDE.
Cela permet également aux développeurs d’effectuer un développement local rapide d’un service particulier, même si ce service dépend de services distincts dans le cluster. Effectuez une transition vers votre service, enregistrez, et vous pourrez instantanément voir le nouveau service en action.
Telepresence est un environnement de développement local impressionnant pour les services fonctionnant dans Kubernetes. La partie de débogage en direct est unique et évolue assez rapidement. Vous trouverez ci-dessous quelques-unes de ses principales fonctionnalités.
- Permettre au code s’exécutant dans le conteneur de se connecter à un IDE ou à un débogueur fonctionnant sur l’hôte.
- Telepresence utilise une image proxy spécifique à OpenShift lorsqu’il observe un cluster OpenShift.
- Telepresence prend également en charge la transmission du trafic vers et depuis d’autres conteneurs dans le pod.
- Telepresence utilise un répertoire accessible par Docker comme répertoire temporaire.
Weave Scope
Weave Scope est un outil de dépannage et de surveillance pour Kubernetes. Il crée des topologies logiques de votre application et de votre infrastructure, ce qui vous permet d’envisager, de surveiller et de contrôler votre application conteneurisée basée sur des microservices.
Il donne une vue descendante de votre application ainsi que de votre infrastructure complète. Il vous autorise à déterminer en temps réel tout problème lié à votre application conteneurisée distribuée, au fur et à mesure de son déploiement chez un fournisseur de services en nuage.
Voici quelques-unes des caractéristiques de Weave Scope :
- La prise en charge de tout type de déploiement (local, hébergé ou hybride) et la possibilité de collecter et de signaler les métriques de l’hôte/du conteneur
- Agrégation des métriques, des événements et des étiquettes de Kubernetes
- Métriques contextuelles en temps réel
- Les nœuds peuvent être filtrés en fonction de la gestion du CPU et de la mémoire, ce qui vous permet d’identifier rapidement les conteneurs qui utilisent le plus de ressources.
Zabbix
Avec Zabbix, il est possible de construire des types de données virtuellement illimités à partir du système. Des systèmes de surveillance en temps réel très performants qui vous permettent de contrôler simultanément des dizaines de milliers de serveurs, de machines virtuelles et de périphériques réseau.
Outre l’enregistrement des données, les fonctions de visualisation sont accessibles et constituent des moyens extrêmement souples d’analyser les données en vue de déclencher des alarmes.
Voici quelques-unes des fonctionnalités de Zabbix :
- Analyse des causes profondes
- Zabbix permet de conserver les données au format JSON, de sorte que de nombreuses applications peuvent également l’utiliser.
- Surveillance en temps réel
- Le proxy Zabbix est fortement recommandé pour les systèmes de production à grande échelle.
- Rapports détaillés
- La découverte de bas niveau vérifie automatiquement les nouveaux nœuds sans aucune difficulté.
- Hautement configurable et extensible.
Zabbix est significatif et ne se limite pas à Kubernetes, mais convient également pour surveiller les métriques de l’infrastructure et de l’application. Si vous êtes intéressé par l’apprentissage de Zabbix, jetez un coup d’œil à ce cours brillant.
Tableau de bord Kubernetes
Ce n’est pas exactement un outil de surveillance, mais Kubernetes Dashboard est une interface utilisateur générale pour Kubernetes qui vous permet de gérer et de dépanner le cluster Kubernetes.
Si vous n’avez pas d’outils de surveillance, Dashboard serait un bon début. Consultez le guide d’installation.
Conclusion
Choisir les bons outils Kubernetes est crucial. Mais devinez quoi ? Tous ces outils sont disponibles GRATUITEMENT, alors pourquoi ne pas les essayer pour voir ce qui fonctionne pour votre monitoring Kubernetes ?
Bonne surveillance et bon dépannage !