In this article
Leitfaden zur Kubernetes-Überwachung
Tipps und Best Practices zur Überwachung von Kubernetes-Deployments
Was ist Kubernetes-Monitoring?
Kubernetes-Monitoring umfasst den Einsatz von Tools und Prozessen, um Kubernetes-Workloads und Cluster im Blick zu behalten. Durch ein umfassendes Monitoring können Administratoren Muster erkennen, die sich später zu größeren Systemproblemen entwickeln könnten. Zu den wichtigen Bereichen gehören Ressourcenmetriken wie die CPU-Auslastung und API-Metriken wie die Anfragerate. Da Fehlkonfigurationen eine der Hauptursachen für Sicherheitsverletzungen in der Cloud sind, sollten Sie auch Konfigurationen überwachen, um Sicherheitsprobleme zu erkennen, bevor Workloads bereitgestellt werden.
Warum Sie Ihre Kubernetes-Deployments überwachen sollten
Kubernetes wird häufig eingesetzt, weil es die Bereitstellung containerisierter Anwendungen auf verteilten Systemen vereinfacht. Der Betrieb eines einzelnen Containers auf einem einzelnen Knoten erfordert eine sorgfältige Konfiguration und fortlaufende Verwaltung. Eine Ausweitung auf Hunderte oder Tausende von Knoten würde umfangreiche personelle Ressourcen und ein entsprechendes Workflow-Management erfordern. Kubernetes bündelt dieses Wissen über Systeme und bewährte Vorgehensweisen in einer Plattform, die das Know-how zur Orchestrierung containerisierter Anwendungen automatisiert.
Es ist wichtig, Ihre Kubernetes-Deployments zu überwachen, denn Kubernetes kann sich nicht selbst verwalten. Änderungen an Anwendungen, etwa neue Versionen oder Sicherheitslücken in Kubernetes, können Anomalien verursachen, die möglicherweise zu Problemen führen. Die Anwendung von Best Practices für Container-Sicherheit hilft, Probleme von vornherein zu vermeiden. Durch die Überwachung von Anwendungsanfragen und Anomalien können Sie jedoch Probleme frühzeitig erkennen und beheben, bevor sie zu Dienstausfällen oder Sicherheitsverletzungen führen.
Herausforderungen bei der Kubernetes-Überwachung
Die Kubernetes-Überwachung bringt viele der gleichen Herausforderungen mit sich wie die Container-Überwachung. Kubernetes selbst bietet ein Kubernetes-Dashboard, das grundlegende Echtzeit-Überwachung von Workloads und Clustern ermöglicht. Aufgrund der verteilten und dynamischen Natur von Kubernetes sind für eine umfassende Überwachung spezielle Tools und Prozesse erforderlich.
Es ist notwendig, sowohl die Workloads als auch den Cluster selbst zu überwachen. Verschiedene Ursachen können dazu führen, dass Ihre Kubernetes-Dienste und -Ressourcen jederzeit keine Statusmeldungen mehr senden – von Fehlkonfigurationen zentraler Komponenten bis hin zu Problemen mit der Netzwerkverbindung. Das stellt einen herkömmlichen, statischen Überwachungsansatz vor Herausforderungen und unterstreicht die Notwendigkeit einer Echtzeit-Überwachung. Zudem reicht es aufgrund der Organisation von Kubernetes in Microservices und Namespaces nicht aus, physische Knoten oder Service-Ports zu überwachen.
Neben der Überwachung in der Produktionsumgebung erfordert Kubernetes eine Selbstkonfiguration, damit die Sicherheitskontrollen ordnungsgemäß eingerichtet sind. Die Konfiguration von Kubernetes wird üblicherweise in Code festgelegt, etwa in Kubernetes-YAML, Helm-Charts oder Vorlagen-Tools. Eine korrekte Konfiguration von Workloads, Clustern, Netzwerken und Infrastruktur ist entscheidend, um Probleme zu vermeiden und die Auswirkungen eines möglichen Sicherheitsvorfalls zu begrenzen. Auch die Konfiguration selbst muss überwacht werden, damit Probleme erkannt werden, bevor sie sich auf Produktionsumgebungen auswirken.
Wichtige Kennzahlen, die Sie verfolgen sollten
Es gibt fünf wichtige Bereiche, die Sie überwachen sollten, um den Zustand Ihrer Kubernetes-Cluster und -Workloads sicherzustellen.
Leistung
Die Überwachung der Leistung von Clustern, Knoten und Pods hilft, die Herausforderung mangelnder Transparenz bei Containern zu bewältigen.
Ressourcenauslastung
Durch die Erfassung der CPU- und Speicherauslastung in Clustern und Namespaces stellen Sie sicher, dass Sie die verfügbaren Ressourcen optimal nutzen.
Anwendungs-Tracing
Dazu müssen Sie sorgfältig ermitteln, welche konkreten Messwerte Sie benötigen und wie Sie auf diese in der Anwendung zugreifen.
Funktionstests
So stellen Sie sicher, dass sich Anwendungen wie erwartet in Verbindung mit dem übrigen Lösungs-Stack verhalten.
Sicherheit
Kubernetes stellt Audit-Logs für seinen API-Server bereit. Durch die Überwachung von DNS und anderen Logs können Sie verdächtige Aktivitäten erkennen.
Fünf Best Practices für die Kubernetes-Überwachung
Bei der Kubernetes-Überwachung sollten Sie einige Best Practices beachten:
Tags und Labels verwenden
Da Kubernetes keine Platform-as-a-Service ist, werden Anwendungen informell anhand von Metadaten definiert. Es ist entscheidend, Anwendungen mit Namen, Instanz und anderen gängigen Labels zu versehen, um die Verwaltung zu vereinfachen.Die Gesamtheit der Container betrachten, nicht jeden einzelnen
Da Kubernetes Pods und keine Container verwaltet, ist es wichtig, auf Pod-Ebene zu überwachen.Service Discovery nutzen
Service Discovery hilft dabei, Kubernetes-Dienste trotz ihrer Flüchtigkeit zu überwachen.Dashboards reichen nicht aus: Alerts einrichten
Alerts lassen sich anhand der Kriterien für eine intakte Kubernetes-Umgebung einrichten. Achten Sie darauf, nicht zu viele Alerts auszulösen und dadurch abzustumpfen – verteilte Systeme bieten zahlreiche potenzielle Überwachungspunkte.Die Kubernetes-Control-Plane überprüfen
Die Kubernetes-Control-Plane funktioniert ähnlich wie eine Flugverkehrskontrolle: Sie plant Workloads, überwacht den Cluster und verwaltet ihn. Die Überprüfung jeder Control-Plane-Komponente – API-Server, Controller-Manager, Scheduler usw. – trägt dazu bei, dass Orchestrierung und Aufgabenplanung effizient weiterlaufen.
Container-Sicherheit mit Fokus auf Entwickler
Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.
Die besten Überwachungs-Tools für Kubernetes
Aufgrund der Komplexität und des Umfangs von Kubernetes-Workloads und -Ressourcen benötigen Sie die passenden Tools, um jeden Aspekt der Plattform zu überwachen. Es gibt verschiedene Überwachungs-Tools, die sich in drei allgemeine Kategorien einteilen lassen.
Open Source: Dazu gehört Prometheus, das Zeitreihendaten aus Kubernetes-Jobs aggregiert. Prometheus wurde bei SoundCloud entwickelt und ist ein ausgereiftes Projekt der Cloud Native Computing Foundation. Es lässt sich mit Grafana für Visualisierungen und mit AlertManager für Alerts integrieren.
SaaS: SaaS-basierte Überwachungslösungen wie Sysdig ermöglichen eine umfassendere Überwachung, ohne dass Tools von Drittanbietern für Visualisierungen oder Alerts benötigt werden.
Enterprise-Klasse: Diese Tools, darunter Sysdig, bieten fortschrittlichere Funktionen, die die Zusammenarbeit zwischen Teams und umsetzbare, KI-gestützte Erkenntnisse ermöglichen.
Diese Kubernetes-Überwachungs-Tools konzentrieren sich auf die Überwachung von Workloads in der Produktionsumgebung. Mit Snyks Kubernetes Configuration Security können Sie Kubernetes-Konfigurationen bereits beim Schreiben und vor der Bereitstellung in der Produktionsumgebung scannen. Kubernetes Configuration Security verfolgt einen Developer-First-Ansatz, mit dem Entwickler Probleme in ihren gewohnten Workflows erkennen und beheben können.
Weitere Informationen zu Problemen rund um Kubernetes und Container finden Sie in diesen Beiträgen:
Was ist Container-Sicherheit? | Sicherheit von Container-Images | Snyk
Alles, was Sie über Container-Scanning wissen müssen | Snyk
FAQ zur Kubernetes-Überwachung
Verfügt Kubernetes über Monitoring-Funktionen?
Kubernetes bietet einige grundlegende Monitoring-Funktionen, etwa CPU-Metriken. Für eine optimale Performance ist Kubernetes jedoch auf Tools von Drittanbietern angewiesen. Mit dem Kubernetes Dashboard können Sie Kubernetes-Workloads und -Cluster überwachen und verwalten. Für ein umfassenderes Monitoring, mit dem Sie Daten erfassen und Probleme diagnostizieren können, benötigen Sie ein Tool eines Drittanbieters.
Wie überwache ich Kubernetes-Container?
Um Kubernetes-Container zu überwachen, benötigen Sie eine Möglichkeit, Überwachungsdaten zu erfassen, eine Datenbank, in der Sie diese Daten speichern, und eine Visualisierungsplattform, mit der Nutzer Erkenntnisse zu Problemen oder Ausfällen in Workloads oder Clustern gewinnen können. Für die Überwachung von Kubernetes-Workloads in der Produktion gibt es zahlreiche Open-Source-, SaaS-basierte und Enterprise-Tools. Wichtig ist außerdem, Konfigurationen bereits während ihrer Erstellung und vor dem Produktiveinsatz zu scannen.
Welches Monitoring-Tool eignet sich am besten für Kubernetes?
Für das Monitoring von Kubernetes in der Produktion gibt es drei Arten von Tools: Open-Source-Tools wie Prometheus, SaaS-Lösungen wie Sysdig und Enterprise-Tools wie Dynatrace. Darüber hinaus können Entwickler mit der Configuration-Security-Lösung von Snyk Konfigurationscode in ihren gewohnten Workflows scannen und so Fehlkonfigurationen aufdecken, bevor diese in die Produktion gelangen.
Wie überwachen Sie Microservices in Kubernetes?
Am besten überwachen Sie Microservices, indem Sie API-bezogene Metriken wie Anfragerate und Latenz verfolgen. RessourcenkPIs wie die CPU-Auslastung sind für die Überwachung von Microservices wichtig, erschweren jedoch die gezielte Eingrenzung spezifischer Probleme einzelner Microservices.