Wider die Komplexität von Container-Cluster Kubernetes-Monitoring über New Relic Infrastructure

Autor / Redakteur: Ramon Guiu* / Stephan Augsten

Verlässt man sich bei Kubernetes vollständig auf die automatisierte Orchestrierung, führt dies mitunter zu weniger Kontrolle und Transparenz. Abhilfe kann die On-Host-Integration mit der New Relic Infrastructure schaffen.

Anbieter zum Thema

Kubernetes aus einer infrastrukturzentrierten Sicht: Sie zeigt die CPU- und Speicherauslastung der Hosts.
Kubernetes aus einer infrastrukturzentrierten Sicht: Sie zeigt die CPU- und Speicherauslastung der Hosts.
(Bild: New Relic)

Bei umfassender Automatisierung der Container-Orchestrierung verlieren Teams schnell den Überblick über die Vorgänge in ihren Cluster. So könnten Kapazitätsprobleme durch die automatische Planung von Pods entstehen, Container bei mangelndem Speicherplatz abstürzen oder sogar die Kubernetes-API bei zu vielen Anfragen ihren Dienst verweigern.

Mit einer On-Host-Integration für Kubernetes wie der „New Relic Infrastructure“ ist ein vollständiges Monitoring der Container-Orchestrierungsschicht möglich. Die Integration sammelt Metriken, Daten und Metadaten für Knoten, Namensräume, Deployments, Replica Sets, Pods und Container. Damit kann man die Frontend- und Backend-Anwendungen und Hosts in den Kubernetes-Cluster vollständig überwachen.

Ergänzendes zum Thema
Was überwacht werden muss

Die Infrastruktur im Wandel.
Die Infrastruktur im Wandel.
( Bild: New Relic )

In einer traditionellen Software-Architektur gibt es eine Applikation und einen Server. Erst als bekannt wurde, dass Anwendungen im größeren Umfang bereitgestellt werden müssen und mehr Agilität gefordert ist, kamen containerisierte Anwendungen ins Spiel und änderten die Beziehung zwischen der Anwendung und der Infrastruktur. Jetzt wurde mit Kubernetes eine neue Ebene hinzugefügt und die Anzahl der Beziehungen und Entitäten, die instrumentiert werden müssen, ist um eine Größenordnung gestiegen.

Der Betrieb von Kubernetes erfordert ein Überdenken und Anpassen der Monitoring-Strategien, um alle neuen Schichten, die in einer verteilten Kubernetes-Umgebung eingeführt wurden, zu berücksichtigen. Die wichtigsten Ebenen, die in einer Kubernetes-Umgebung überwacht werden müssen, sind:

  • User Experience: Verfolgung und Überwachung der Leistung mobiler Anwendungen und Browser, um Einblick in Dinge wie Reaktionszeit und Fehler zu erhalten. Auch Ladezeit und Verfügbarkeit müssen überwacht werden, um die Kundenzufriedenheit zu gewährleisten.
  • Anwendungen: Messung von Dingen wie Anforderungsrate, Durchsatz und Fehlerrate sowie die Überwachung von Anwendungs-Leistung und -Verfügbarkeit innerhalb des Kubernetes-Clusters.
  • Container: Suche nach Containern, die nicht starten können, weil sie in einem „Crash-Loop-Backoff“ stecken. Außerdem sollten CPU- und Speicherverbrauch in Bezug auf die Nähe zu den konfigurierten Grenzen überwacht werden.
  • Deployments und Pods: Alle gewünschten Pods in einem Deployment sollten laufen und funktionieren.
  • Knoten: Überwachung der CPU-, Speicher- und Festplattenauslastung für Kubernetes-Mitarbeiter und -Master, um sicherzustellen, dass alle Pods gesund sind.
  • Cluster: Verfolgung der Kapazität, des Zustands und der Verfügbarkeit des Clusters.

Bildergalerie

Alle Kuberetes-Objekte auf einen Blick.
Alle Kuberetes-Objekte auf einen Blick.
(Bild: New Relic)

Mit einer Kubernetes-Integration bringt man Metriken auf die Systemebene, so dass die wichtigsten Cluster-Teile schnell angezeigt sowie Probleme per Alert gemeldet und behoben werden können. New Relic bietet dafür eine Momentaufnahme, so dass schnell alle Objekte im Cluster sichtbar werden.

Über ein Dashboard zeigt New Relic Infrastructure alle relevanten Kubernetes-Informationen.
Über ein Dashboard zeigt New Relic Infrastructure alle relevanten Kubernetes-Informationen.
(Bild: New Relic)

Mit einem sofort einsatzbereiten Dashboard werden die Beziehungen zwischen den Objekten sichtbar und die Vorteile des in Kubernetes integrierten Beschriftungssystems nutzbar.

Korrelation zu den Anwendungen

Der Wechsel von einer infrastruktur- zu einer anwendungszentrierten Ansicht ist beispielsweise mit New Relic möglich. Da die Integration APM-kompatibel ist, kann man auch Cluster-Daten anzeigen und so die Anwendungs-Performance in diesem Cluster einsehen.

Für Teams, die mit Kubernetes-skalierte Anwendungen betreiben, ist diese Fähigkeit zur Fehlerbehebung der Infrastruktur bis zur Anwendungsebene von entscheidender Bedeutung. Untersuchungen, die einst einige Stunden in Anspruch genommen haben, dauern meist nur noch wenige Minuten.

Wichtige Alerts festlegen und das Kubernetes-Monitoring starten

Für ein geeignetes Monitoring müssen benutzerdefinierte Alerts für die Kubernetes-Daten erstellt werden. Geeignete Alerts informieren beispielsweise über den aktuellen CPU- und Speicherverbrauch für Container in Bezug auf deren Limits.

Außerdem sind Benachrichtigungen beim Ausfall von Kubernetes-Komponenten, in etwa über die Prozessalarmierung, sinnvoll. Auch Benachrichtigungen über aktuelle Pod-Repliken, verglichen mit den gewünschten Pod-Repliken, sind möglich, sowie Informationen über jegliche Anfragen, die über die Kubernetes-Daten geschrieben werden.

Die Kubernetes-Integration von New Relic ist in einer Beta-Version bereits für alle „New Relic Infrastructure“-Kunden im Pro Level verfügbar. Zusätzlich kann die Integration von Kunden genutzt werden, die mit Kubernetes auf Amazon Web Services (AWS), Microsoft Azure, Google Cloud Plattform und IBM Cloud Container Service arbeiten.

*Ramon Guiu ist Director, Product Management, bei New Relic.

(ID:45371285)