Supervision dans Azure Kubernetes Services
Conseil
Ce contenu est un extrait du livre électronique, Cloud Native .NET apps for Azure (Architecture d’applications .NET natives cloud pour Azure), disponible dans la documentation .NET ou au format PDF à télécharger gratuitement pour le lire hors connexion.
La journalisation intégrée dans Kubernetes est primitive. Toutefois, il existe d’excellentes options pour extraire les journaux d’activité de Kubernetes et là où ils peuvent être correctement analysés. Si vous devez surveiller vos clusters AKS, la configuration de Elastic Stack pour Kubernetes est une excellente solution.
Azure Monitor pour conteneurs
Azure Monitor pour conteneurs prend en charge l’utilisation des journaux d’activité à partir non seulement de Kubernetes, mais également d’autres moteurs d’orchestration tels que DC/OS, Docker Swarm et Red Hat OpenShift.
Figure 7-10. Consommation de journaux à partir de différents conteneurs
Prometheus est une solution de surveillance des métriques open source populaire. Elle fait partie de Cloud Native Compute Foundation. En règle générale, l’utilisation de Prometheus nécessite la gestion d’un serveur Prometheus avec son propre magasin. Toutefois, Azure Monitor pour conteneurs fournit une intégration directe avec les points de terminaison de métriques Prometheus. Par conséquent, un serveur distinct n’est pas nécessaire.
Les informations de journal et de métrique sont collectées non seulement à partir des conteneurs s’exécutant dans le cluster, mais également des hôtes de cluster eux-mêmes. Il permet de mettre en corrélation les informations de journal à partir des deux, ce qui facilite beaucoup le suivi d’une erreur.
L’installation des collecteurs de journaux diffère sur les clusters Windows et Linux . Toutefois, dans les deux cas, la collection de journaux est implémentée en tant que DaemonSetKubernetes, ce qui signifie que le collecteur de journaux est exécuté en tant que conteneur sur chacun des nœuds.
Quel que soit l’orchestrateur ou le système d’exploitation qui exécute le démon Azure Monitor, les informations de journal sont transférées aux mêmes outils Azure Monitor avec lesquels les utilisateurs sont familiers. Cette approche garantit une expérience parallèle dans les environnements qui combinent différentes sources de journal telles qu’un environnement Kubernetes/Azure Functions hybride.
Figure 7-11. Exemple de tableau de bord montrant les informations de journalisation et de métrique de nombreux conteneurs en cours d’exécution.
Log.Finalise()
La journalisation est l’une des parties les plus négligées et pourtant les plus importantes du déploiement d’une application à grande échelle. À mesure que la taille et la complexité des applications augmentent, il est donc difficile de les déboguer. Le fait de disposer de journaux de qualité supérieure rend le débogage beaucoup plus facile et le déplace du domaine de « presque impossible » à « une expérience agréable ».