Startseite
Themen
Kubernetes-Überwachung
Die Kubernetes-Überwachung bezieht sich auf den Prozess der Erfassung und Analyse von Daten in Bezug auf den Zustand, die Leistung und die Kostenmerkmale von containerisierten Anwendungen, die in einem Kubernetes-Cluster laufen.
Kubernetes – auch bekannt als „K8s“ oder „kube“ – ist eine Plattform zur Containerorchestrierung für die Planung und Automatisierung der Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen. Das ursprünglich von Google entwickelte Projekt wird nun von der Cloud Native Computing Foundation (CNCF) verwaltet.
Durch die Überwachung von Kubernetes-Clustern können Administratoren und Benutzer Dinge wie die Betriebszeit, die Nutzung von Cluster-Ressourcen und die Interaktion zwischen Cluster-Komponenten verfolgen. Die Überwachung hilft dabei, Probleme schnell zu erkennen, wie z. B. unzureichende Ressourcen, Ausfälle, Pods, die nicht gestartet werden können, und Knoten, die dem Cluster nicht beitreten können.
Anwendungen auf Kubernetes, die als cloudnative Microservices bereitgestellt werden, haben wesentlich mehr Komponenten, die miteinander kommunizieren. Moderne Architekturen sind auf mehrere Instanzen und sogar Standorte verteilt und fügen den täglichen Aufgaben der Überwachung, Alarmierung und Fehlerbehebung neue Komplexitäten hinzu.
Auch die kurzlebige Natur von Containern kann die Fehlerbehebung erschweren. Container existieren in der Regel so lange wie der Prozess, der in ihnen ausgeführt wird, und verschwinden, wenn dieser Prozess beendet wird. Dies ist einer der schwierigsten Aspekte bei der Behebung von Fehlern in Containern. Wenn Container beendet werden oder auf alternative Knoten umgeleitet werden, sind die Details, die Sie für die Reaktion auf Vorfälle benötigen, möglicherweise nicht mehr vorhanden.
Obwohl Kubernetes über integrierte Cluster-Operatoren verfügt, die Cluster überwachen und Warnmeldungen basierend auf laufenden Pods senden, helfen Open-Source-Tools und Überwachungslösungen von Drittanbietern dabei, einen vollständigen Überblick über eine K8s-Umgebung zu erhalten.
Erfahren Sie, wie intelligente Automatisierung Ihre Geschäftsabläufe zu einem Wettbewerbsvorteil machen kann.
Eine ordnungsgemäße Kubernetes-Überwachung bietet eine Reihe von Vorteilen, von der Aufrechterhaltung der Stabilität und Reaktionsfähigkeit der Anwendungsleistung bis hin zur Verbesserung von Sicherheit und Compliance.
Durch die Verfolgung und Analyse von Kennzahlen wie CPU-Verbrauch, Speicherauslastung, Netzwerkverkehr und Antwortzeiten ist es möglich, ineffiziente Bereiche zu identifizieren, die Ressourcenzuweisung zu optimieren und eine Kubernetes-Infrastruktur für eine optimale Leistung zu optimieren.
Dies kann zu einer verbesserten Reaktionsfähigkeit der Anwendung und einer besseren Benutzererfahrung führen.
Durch die Überwachung von Ressourcennutzungsmetriken wie CPU-Auslastung, Speicherverbrauch und Netzwerkverkehr ist es möglich, nicht ausgelastete oder überlastete Kubernetes-Knoten zu identifizieren, die Ressourcenzuweisung zu optimieren und fundierte Entscheidungen über die Skalierung der Infrastruktur zu treffen.
Dadurch wird sichergestellt, dass Anwendungen über die erforderlichen Ressourcen verfügen, um eine optimale Leistung zu erzielen, und gleichzeitig die Kosten gesenkt werden.
Alerts and Notification helfen dabei, die Grundursache von Kubernetes-Problemen proaktiv zu identifizieren und zu beheben, bevor sie Störungen oder Ausfallzeiten verursachen.
Das Ergebnis sind eine bessere Systemstabilität und die Minimierung der Auswirkungen potenzieller Probleme auf Anwendungen und Benutzer.
Durch die Überwachung von Protokollen, Ereignissen und Metriken können Probleme wie Pod-Ausfälle, Ressourcenbeschränkungen, Netzwerkprobleme oder Anwendungsfehler schnell identifiziert und diagnostiziert werden.
Durch die Beschleunigung des Debugging-Prozesses werden Ausfallzeiten reduziert und Anwendungen bleiben verfügbar.
Die Analyse historischer Daten und die Überwachung von Trends bei der Ressourcennutzung ermöglichen eine bessere Prognose des zukünftigen Ressourcenbedarfs, die Identifizierung des Bedarfs an zusätzlichen Kubernetes-Ressourcen und die entsprechende Planung der Clusterskalierung.
Letztendlich kommt es bei erhöhten Arbeitsanforderungen nicht zu Ressourcenengpässen.
Die Überwachung von Kubernetes-Protokollen, Netzwerkverkehr und Zugriffsmustern erleichtert die Identifizierung von anomalen Aktivitäten, potenziellen Verstößen und nicht autorisierten Zugriffsversuchen.
Darüber hinaus trägt die Sicherstellung, dass angemessene Sicherheitskontrollen und -richtlinien vorhanden sind und aktiv überwacht werden, zur Einhaltung von Standards und Vorschriften bei.
Um eine vollständige Sichtbarkeit eines Kubernetes-Stacks zu erhalten, müssen Telemetriedaten zu den Containern gesammelt werden, die ständig erstellt und zerstört werden und sich gegenseitig aufrufen, während gleichzeitig Telemetriedaten zum Kubernetes-Cluster selbst erfasst werden.
Für die Clusterüberwachung gibt es mehrere Metriken auf Clusterebene, die dabei helfen, den Gesamtzustand eines Kubernetes-Clusters zu bestimmen.
Knotenfunktionen: Durch die Überwachung, ob alle Clusterknoten ordnungsgemäß funktionieren und mit welcher Kapazität sie arbeiten, lässt sich feststellen, welche Cloud-Ressourcen für den Betrieb des Clusters benötigt werden.
Knotenverfügbarkeit: Durch die Überwachung der Anzahl der verfügbaren Clusterknoten lässt sich feststellen, für welche Cloud-Ressourcen bezahlt wird (bei Verwendung eines Cloud-Anbieters wie AWS oder Microsoft Azure) und wie der Cluster genutzt wird.
Ressourcennutzung der Knoten: Die Überwachung der Ressourcennutzung des Clusters als Ganzes (Speicher, CPU, Bandbreite und Festplattennutzung) hilft bei der Entscheidung, ob die Größe oder Anzahl der Knoten in einem Cluster erhöht oder verringert werden soll.
Anzahl der laufenden Pods: Die Überwachung der laufenden Pods zeigt, ob die Anzahl der verfügbaren Knoten ausreicht und ob sie im Falle eines Knotenausfalls die gesamte Pod-Workload bewältigen können.
Um sicherzustellen, dass einzelne Pods innerhalb eines Kubernetes-Clusters ordnungsgemäß funktionieren, ist eine Überwachung auf Pod-Ebene erforderlich. Dabei werden drei Arten von Metriken betrachtet: Kubernetes-Metriken, Container-Metriken und Anwendungsmetriken.
1. Kubernetes-Metriken
Die Überwachung der Kubernetes-Metriken stellt sicher, dass alle Pods in einer Kubernetes-Bereitstellung ausgeführt werden und fehlerfrei sind.
Anzahl der Pod-Instanzen: Wenn die aktuelle Anzahl der Instanzen eines Pods im Vergleich zu der erwarteten Anzahl gering ist, hat der Cluster möglicherweise keine Ressourcen mehr.
Status des Pods: Wenn Sie wissen, ob Pods ausgeführt werden und wie viele ausstehen, fehlgeschlagen sind oder abgebrochen wurden, erhalten Sie einen Einblick in deren Verfügbarkeit und Stabilität.
Pod-Neustarts: Die Überwachung der Anzahl der Pod-Neustarts gibt Aufschluss über die Stabilität der Anwendung innerhalb des Pod. Bei häufigen Neustarts kann ein zugrunde liegendes Problem wie Abstürze oder Ressourcenknappheit die Ursache sein.
CPU-Auslastung: Die Überwachung des CPU-Verbrauchs eines Pods hilft dabei, potenzielle Leistungsengpässe zu erkennen und sicherzustellen, dass die Pods über ausreichende Verarbeitungsressourcen verfügen.
Speicherverbrauch: Die Überwachung des Speicherverbrauchs eines Pods hilft bei der Erkennung von Speicherverlusten oder übermäßiger Speicherauslastung, die sich auf die Stabilität einer Anwendung auswirken könnten.
Netzwerknutzung: Die Überwachung der gesendeten/empfangenen Bytes eines Pods gibt Aufschluss über seine Kommunikationsmuster und hilft bei der Identifizierung von Netzwerkproblemen.
Zu den Kubernetes-Metriken gehören auch Zustandsprüfungen, Netzwerkdaten und der Fortschritt der Bereitstellung (d. h. die Anzahl der Instanzen, die von einer älteren Version auf eine neue umgestellt wurden).
2. Container-Metriken
Die Überwachung der Pod-Container-Metriken hilft Ihnen festzustellen, wie nah Sie an den von Ihnen konfigurierten Ressourcenlimits sind. Anhand dieser Metriken können Sie auch Pods erkennen, die in einem CrashLoopBackoff stecken.
CPU-Auslastung/Drosselung: Durch die Überwachung des CPU-Verbrauchs laufender Container können ressourcenintensive Container oder solche, die Engpässe verursachen, identifiziert werden, was sich auf die Gesamtleistung des Clusters auswirken könnte. Die Verfolgung von CPU-Drosselungsmetriken zeigt an, ob Container aufgrund von Ressourcenbeschränkungen oder Fehlkonfigurationen in ihrer CPU-Nutzung eingeschränkt sind.
Speicherauslastung: Die Überwachung des Speicherverbrauchs laufender Container lenkt die Aufmerksamkeit auf Probleme wie Speicherlecks, übermäßige Speicherauslastung oder unzureichende Speicherzuweisung, die sich auf die Stabilität der Container und die Gesamtleistung des Systems auswirken könnten.
Netzwerkverkehr/Fehler: Die Überwachung des Netzwerkverkehrs von Containern sowie von Fehlern wie Paketverlust oder Verbindungsfehlern hilft bei der Bewertung ihrer Kommunikationsmuster und einer übermäßigen Netzwerknutzung oder unerwarteten Verkehrsspitzen.
3. Anwendungsmetriken
Die Überwachung von Anwendungsmetriken hilft bei der Messung der Leistung und Verfügbarkeit von Anwendungen, die in Kubernetes-Pods ausgeführt werden. Diese Metriken werden in der Regel von der Kubernetes-Anwendung selbst entwickelt und beziehen sich auf die von ihr angesprochenen Business Rules, wie z. B. Latenz, Reaktionsfähigkeit, Fehlerraten und Antwortzeiten.
Im Folgenden finden Sie einige Best Practices, die Sie für die erfolgreiche Überwachung von Kubernetes-Umgebungen berücksichtigen sollten.
Verwenden von Kubernetes DaemonSets: Mit DaemonSets können Sie einen Agenten bereitstellen, der jeden Knoten Ihrer Kubernetes-Umgebung und alle Ressourcen auf diesem Knoten im gesamten Kubernetes-Cluster überwacht. Daemons stellen sicher, dass Hosts angezeigt werden und bereit sind, Metriken bereitzustellen.
Kennzeichnungen sinnvoll nutzen: Durch die Erstellung eines logischen, konsistenten und kohärenten Kennzeichnungsschemas können DevOps-Teams verschiedene Komponenten leichter identifizieren und den größtmöglichen Nutzen aus Ihrer Kubernetes-Überwachung ziehen.
„Service Discovery“ verwenden: Service Discovery for Google Kubernetes Engine (GKE) ermöglicht Ihnen die kontinuierliche Überwachung Ihrer Anwendungen, selbst wenn Sie nicht wissen, wo diese ausgeführt werden. Die Metrikenerfassung wird automatisch an sich bewegende Container angepasst, um ein umfassenderes Verständnis des Zustands eines Clusters zu erhalten.
Einrichten von Alerts and Notifications: Richten Sie Alerts für kritische Messwerte wie CPU- oder Speicherauslastung ein und lassen Sie sich benachrichtigen, wenn diese Messwerte bestimmte Schwellenwerte erreichen. Überwachungstools mit intelligentem Alarmsystem helfen, die Alarmermüdung (Alarm Fatigue) zu minimieren, indem sie Ihnen nur bei bedeutenden Ereignissen oder Änderungen eine Benachrichtigung senden.
Überwachen der Elemente der Steuerungsebene: Durch die regelmäßige Überwachung der Elemente der Kubernetes-Steuerungsebene, wie z. B. des API-Servers, kube-dns, kubelet, kube-proxy, etcd und des Controller-Managers, stellen Sie sicher, dass die Cluster-Dienste reibungslos funktionieren.
Überwachen der Benutzererfahrung: Obwohl dies nicht nativ in der Kubernetes-Plattform gemessen wird, kann die Überwachung der Benutzererfahrung manchmal auf Probleme hinweisen, bevor sie im Cluster entdeckt werden.
Nutzung integrierter und Open-Source-Tools: Unabhängig von Ihren Anwendungsfällen sollten Sie die integrierten Kubernetes-Überwachungstools wie Kubernetes Dashboard, cAdvisor (Container Advisor) und Kube-state-metrics sowie beliebte Open-Source-Tools wie Prometheus, Grafana, Jaeger und Elastic Stack (ehemals ELK Stack) nutzen. Neben der Bereitstellung, Fehlerbehebung und Überwachung bieten diese Tools zusätzliche Funktionen wie Datenvisualisierungen und das Sammeln und Speichern von Zeitreihenmetriken aus verschiedenen Quellen.
Verwendung einer SaaS-basierte K8s-Überwachungslösung: Um die Verwaltung von Kubernetes, die Entwicklung der Infrastruktur und die Kosten zu vereinfachen und regelmäßige Updates zu erhalten, sollten Sie ein SaaS-basiertes Überwachungssystem mit integrierter Automatisierung anstelle eines On-Premises-Systems verwenden.
Gehen Sie über herkömmliche APM-Lösungen hinaus, indem Sie Observability demokratisieren, sodass jeder in den Bereichen DevOps, SRE, Platform Engineering, ITOps und Entwicklung die gewünschten Daten mit dem erforderlichen Kontext erhalten kann.
Wenn Anwendungen nur das verbrauchen, was sie tatsächlich für ihre Ausführung benötigen, ist es möglich, die betriebliche Effizienz zu verbessern, die Auslastung zu erhöhen sowie die Energiekosten und die damit verbundenen CO2-Emissionen zu senken.
Nutzen Sie die Full-Stack-Telemetrie für die Verwaltung von Architekturen, die auf Container und Microservices ausgerichtet sind, mit fortschrittlichen Funktionen für die Überwachung, Fehlerbehebung, Definition von Warnmeldungen und die Gestaltung von benutzerdefinierten Dashboards.
Gewinnen Sie ein besseres Verständnis dafür, was Kubernetes ist, warum es wichtig ist, wie es funktioniert und warum seine Beliebtheit als Container-Orchestrierungsplattform weiter zunimmt.
Erfahren Sie mehr über die Bedeutung von Containern im Cloud-Computing, ihre Hauptvorteile und das aufstrebende Ökosystem verwandter Technologien – darunter Docker, Kubernetes, Istio und Knative.
Laden Sie diesen Bericht herunter, um Best Practices und Überlegungen zur Auswahl einer Cloud-Optimierungslösung von PeerSpot-Mitgliedern zu erfahren, die Turbonomic verwenden.