Getty Images/iStockphoto

Tipps und Tools zum Sammeln hilfreicher Kubernetes-Metriken

Metriken sind ein wichtiger Teil jeder Kubernetes-Implementierung. Oft gibt es Schwierigkeiten beim Identifizieren der richtigen Metriken und der Auswahl der Tools.

Unternehmen streben eine verbesserte Berichterstattung an, um Entscheidungen in den Bereichen Sicherheit, FinOps und IT zu treffen. Dafür benötigen sie Zugang zu Betriebsdaten aus der gesamten DevOps-Toolchain. Für den Erfolg von DevOps sind Metriken unerlässlich. Wenn es darum geht, zeitnahe und umsetzbare Daten aus Kubernetes zu extrahieren, stehen viele Teams jedoch vor Herausforderungen.

Eine der wichtigsten Metriken, die ein Team verfolgen kann, konzentriert sich auf den Zustand des Kubernetes-Clusters. Dazu gehören beispielsweise der Status, laufende Container, Netzwerk-I/O und Indikatoren für den Ressourcenverbrauch. Als Indikator für die Bereitstellung dient die Leistung des Clusters und sollte in Verbindung mit anderen Metriken wie CPU-, Speicher- und Festplattenauslastung sowohl auf Node- (Knoten) als auch auf Pod-Ebene verwendet werden.

Etcd-Datenspeicher, API-Server, Controller-Lebenszyklen und Scheduler – Metriken der Steuerungsebene – sind ebenfalls wichtig. Auch FinOps-Kennzahlen wie Kubernetes-Kosten pro Umgebung, Produkt, Team oder Cluster werden immer wichtiger.

Tools und Plug-ins für die Erfassung von Kubernetes-Metriken

Um Kubernetes-Metriken zu sammeln, stehen Unternehmen eine Reihe von Tools und Plug-ins zur Verfügung. Diese sechs gängigen Optionen sollten Sie in Betracht ziehen:

Kubelet

Kubelet ist eine Kernkompetente von Kubernetes, die auf jedem Node läuft und die Container verwaltet. Damit können Teams Kubernetes-Metriken wie CPU-Nutzung, Speicherverbrauch und Netzwerknutzungsstatistiken offenlegen. Mit einem externen Überwachungssystem wie Prometheus können die Daten nach der Veröffentlichung dieser Metriken mit kubelet abgerufen werden, um Berichte für die Beteiligten zu erstellen.

Container Advisor

Dieses meist CAdvisor genannte Open Source Tool sammelt individuelle Container-Ressourcenauslastung und Leistungsmetriken auf Kubernetes-Nodes. Um Metriken auf Containerebene – einschließlich CPU-, Speicher-, Festplatten- und Netzwerknutzung – zu erfassen und zu überwachen, lässt sich Prometheus auch in CAdvisor integrieren.

Prometheus

Prometheus ist als Open-Source-Überwachungs- und Alarmierungs-Toolkit im Kubernetes-Ökosystem beliebt. Zum Teil ist das auf seine native Unterstützung für Kubernetes zurückzuführen. Prometheus verfügt über umfangreiche Überwachungsfunktionen, einschließlich Kubernetes-Metriken in Bezug auf API-Server, Nodes und Container. Außerdem bietet das Tool eine flexible Abfragesprache, leistungsstarke Warnregeln und ein großes Ökosystem von Exporteuren und Integrationen.

Grafana

Häufig kombinieren DevOps-Teams Prometheus mit Grafana, da die beiden Tools gut integriert werden können. Dieses Open Source Tool dient der Datenvisualisierung und -überwachung.

Die Erstellung von Dashboards und Berichten ist für viele Unternehmen eines der häufigsten Probleme für Unternehmen. Mit Grafana können DevOps-Teams interaktive Dashboards und Diagramme erstellen, um die von Prometheus gesammelten Kubernetes-Metriken zu visualisieren. Häufig nutzen Teams Grafana, die mit Kubernetes-Metriken experimentieren möchten und Unterstützung für verschiedene Datenquellen benötigen, um Berichte für die Beteiligten zu erstellen.

Datadog

Datadog überwacht automatisch die Nodes von Kubernetes-Plattformen. Von Clusterkomponenten, Workloads und anderen Kubernetes-Objekten sammelt der Datadog-Agent Metriken, Ereignisse und Protokolle. Allerdings ist Datadog kein Open Source Tool und verursacht deshalb Kosten, die zu berücksichtigen sind.

Dynatrace

Dynatrace überwacht die Verfügbarkeit und den Zustand von Anwendungen und Prozessen, Abhängigkeiten und Verbindungen zwischen Hosts, Containern und Cloud-Instanzen. Es ist eine Full-Stack-Überwachungsoption für Kubernetes- Um das Innenleben von Kubernetes-Anwendungen aufzudecken, nutzt das Tool Ereignisse, Traces, Metriken und Verhaltensinformationen. Dynatrace ist ein Konkurrent von Datadog.

Herausforderungen beim Ableiten von Metriken aus Kubernetes

Kubernetes und andere Cloud- und Cloud-native Tools versetzen DevOps- und Site-Reliability-Engineering-Teams in eine neue Ära der verwertbaren Daten. Kubernetes erfasst seine generierten Daten effizient und zuverlässig, insbesondere auf Cluster- und Pod-Ebene. Es erfordert zusätzliche Tools und Konfigurationen, um diese Daten in ein brauchbares, umsetzbares Format zu konvertieren.

Als erstes müssen die Teams auf Grundlage der spezifischen Anforderungen und Anwendungsfälle bestimmen, welche Metriken für ihre Organisation relevant sind. Um festzustellen, ob die Ziele erreicht werden, müssen Unternehmen die Kubernetes-Metriken auswählen, die nützliche Daten zur CPU-Nutzung, zum Speicherverbrauch und zum Netzwerkdurchsatz liefern.

Eine ebenfalls wichtige Überlegung ist die Genauigkeit der Kubernetes-Metriken. Diese erstrecken sich über das gesamte Cluster, die Node- und die Pod-Ebene und bieten jeweils wertvolle Einblicke. Die Genauigkeit, mit der ein Team diese Metriken sammelt, bestimmt, wie einfach oder schwierig dieses Vorhaben wird. Da alle Metriken mit unterschiedlichen Aggregationsmethoden arbeiten, wird auch das weitere Verstehen und Interpretieren eine komplexe Aufgabe.

Nach Erhalt der Metriken geht es um die Speicherung und Aufbewahrung dieser Daten für die langfristige Analyse und Fehlerbehebung. Das Team muss die Speicherverwaltung und die Anforderungen an die Daten berücksichtigen. Um ungehindert anfallende Messdaten und so Probleme mit dem Speicherplatz zu verhindern, sind diese Anforderungen und eine Richtlinie unerlässlich.

Eine weitere große Herausforderung bei Kubernetes-Metriken ist die Skalierbarkeit. Können die Systeme die Erfassung und Überwachung von Metriken bei sich ändernden Arbeitslasten und ständigem Hinzufügen und Entfernen von Pods/Nodes bewältigen. Falls nicht, muss die Infrastruktur umgestaltet werden, um diese Belastungen zu bewältigen und gleichzeitig die Leistung und Zuverlässigkeit zu erhalten.

Die Teams benötigen aus personeller Sicht IT-Experten, die sich mit der Erstellung effektiver Dashboards, der Erstellung von Warnmeldungen und der Erkennung von Anomalien in ihrem System auskennen. Außerdem werden Teammitglieder benötigt, die die Daten sinnvoll analysieren und visualisieren können, um die richtigen Erkenntnisse zu gewinnen und Tools auszuwählen, die mit den Unternehmenszielen übereinstimmen.

Benutzerdefinierte Metriken für spezifische Anwendungsfälle

Nachdem die Teams ihre Kubernetes-Metriken identifiziert und gesammelt haben, ist es nun an der Zeit, sie für bestimmte Anwendungsfälle zu nutzen.

Überwachung der Anwendungsleistung

Mit APM-Metriken kann die Leistung von Anwendungen, die über Kubernetes laufen, überwacht und gemessen werden. Dazu gehören auch gängige Probleme wie Engpässe. Beispiele für APM-Metriken sind Antwortzeiten, Latenz, Fehlerraten, Durchsatz und Ressourcenauslastung.

Ressourcenüberwachung und -optimierung

Benutzerdefinierte Metriken ermöglichen es, die Ressourcennutzung in Kubernetes-Umgebungen zu verfolgen und zu analysieren. Auf Anwendungs-, Pod-, Container- oder Node-Ebene können Metriken zur CPU-, Speicher-, Festplatten-I/O- und Netzwerkauslastung erfasst werden. Anhand dieser Metriken können Teams ressourcenintensive Komponenten identifizieren und die Ressourcenzuweisung optimieren. So werden eine effiziente Nutzung und eine Kostenoptimierung sichergestellt.

Autoscaling

Ein entscheidendes Element für Cloud- und Kubernetes-FinOps-Strategien ist das Autoscaling. Um Autoscaling-Aktionen auszulösen, können IT-Ops-Teams anwendungsspezifische Metriken definieren und sammeln, die auf ihrer Analyse der Workload-Anforderungen basieren.

Überwachung von Service Level Agreements und Service Level Objectives

Die Einrichtung von benutzerdefinierten Metriken, die Verfügbarkeit, Antwortzeiten, Fehlerraten oder andere Metriken messen, die mit Service Level Agreements (SLA) übereinstimmen, gleicht die Herausforderungen aus, die mit der Überwachung und Durchsetzung von SLAs und Service Level Objectives (SLO) für Anwendungen verbunden sind. Solche benutzerdefinierten Metriken geben IT-Teams die umsetzbaren Daten, die sie benötigen, um proaktiv zu handeln und die Servicequalität sicherzustellen.

Erfahren Sie mehr über Cloud Computing