Le therme est très près de control theory qui stipule qu’on peut changer le comportement d’un système selon des métriques externes (exemple cruise control). En faisant cela, on veut pouvoir continuer d’observer notre cluster et les intéractions entre les pods.
Mesure et collecte des données et les transfère à un autre système. C’est pratique pour avoir des logs, des métriques et des traces centraliser au même endroit. Dans un système où il y a plusieurs services, vérifier des logs directements dans les fichiers respectifs peut être fastidieux.
docker, kubectl et podman fournissent une commande pour visualiser les logs des processus des conteneurs dans /dev/stdout et /dev/stderr
le paramètre -f permet de stream les logs en temp réel.
Voici quelques exemples de lignes de commande:
Avoir les logs du pod nginx
kubectl logs nginx
Retourne le conteneur ruby du pod web-1 précédent
kubectl logs -p -c ruby web-1
Pareil, mais en temps réel
kubectl logs -f -c ruby web-1
Affiche les 20 dernières lignes du pod nginx
kubectl logs --tail=20 nginx
Affiche tous les logs de la dernière heure de nginx
kubectl logs --since=1h nginx
Node-level logging : Efficace, un admin configure un outil qui va centraliser les logs
Logging via sidecar container : L’application a un sidecar container qui collecte les données, puis les envoies à un dépôt centralisé.
Application-level logging : L’application s’occupe d’envoyer les logs dans le dépôt centralisé, cependant, pour se faire, il faut configurer un adaptateur de logging dans CHAQUE application.
Pour une liste d’outil c’est par ici
Chez Devolutions, on utilise datadog.
Un outil open source pour faire du monitoring, il s’intègre bien avec Kubernetes. Il utilise 4 métriques différentes :
Une trace est le chemin que va emprunter une requête, elle va laisser des informations.

Pour bien gérer les coûts, il est important d’analyser ce qui est réellement nécessaire et, si possible, automatiser certaines ressources.