Microservices in der Azure-Cloud, Teil 3: Betrieb, Sicherheit und Skalierbarkeit
Microservices und ihre Umgebung müssen überwacht werden. Werkzeuge wie Azure Monitor, Active Directory und Istio helfen dabei.
- Dr. Guido-Arndt Söldner
- Matthias Wessendorf
Der dritte und finale Teil unseres Tutorials über Microservices in der Azure-Cloud behandelt die operativen Aspekte beim Betrieb der Microservices: Logging, Monitoring, den Einsatz eines Service Mesh, Sicherheitsaspekte wie Role-based Access Control, aber auch Skalierbarkeitsfragen.
Sowohl im Fehlerfall als auch im Normalbetrieb stellen Logs eine unverzichtbare Informationsquelle dar, um Einblick in den Ablaufstatus zu erhalten. Logging findet in der Regel nicht isoliert statt, sondern in Kombination mit Monitoring. Wenn man mit Azure Kubernetes Service arbeitet, gibt es zwei verschiedene Stellen, an denen man Logdateien abgreifen kann: die Standard-Kubernetes-Logs und Azure Monitor for Containers. Die Standardlogs von Kubernetes umfassen die Protokolleinträge der verschiedenen Kubernetes-Komponenten sowie die Standardausgabe und Fehlerausgabe. Die Logs finden sich im Verzeichnis /var/log auf den entsprechenden Knoten des Kubernetes-Clusters. Der Befehl
kubectl logs [pod name]
zeigt sie an. Für das clusterweite Betrachten von Logdaten ist diese Vorgehensweise jedoch nicht zielführend, da Kubernetes keinen nativen Ansatz für das zentrale Sammeln von Logdaten kennt. Dazu kommen die Schwierigkeiten, wenn man Logs und Monitoringdaten effizient nach Applikation, Namespaces oder Benutzergruppen getrennt betrachten möchte.