PerfectScalePerfectScale

PerfectScale

Kubernetes Alerting für gesunde, performante K8s-Cluster

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

By Brendan CooperJun 19, 20244 min read

Mit Kubernetes Alerting erkennen Sie relevante Veränderungen bei Resilienz-Indikatoren frühzeitig – und können sie beheben, bevor sie sich auf Ihr System auswirken.

Hier sind die 10 wichtigsten Alerts, die Sie für Ihren Kubernetes-Cluster konfigurieren sollten – alle enthalten in der Kubernetes-Monitoring-Plattform von PerfectScale. Mit PerfectScale werden Sie in Echtzeit über erkannte Risiken benachrichtigt.

PerfectScale liefert zeitnahe und zuverlässige Alerts, die Sie über ungewöhnliche Systemaktivitäten informieren.

Resilienz-Indikatoren

OOM

Out-of-Memory-Events treten in der Regel in folgenden Situationen auf:

  • Das Memory-Limit für einen Pod ist zu niedrig gesetzt. Sobald die Speichernutzung des Pods das definierte Limit erreicht, wird ein Event ausgelöst.
  • Ein Node steht unter Memory Pressure und versucht, einzelne Pods zu entfernen (Eviction). Offizielle Dokumentation

CPU Throttling

CPU Throttling tritt auf, wenn ein Pod sein definiertes CPU-Limit erreicht – das kann zu Latenzen in den Antwortzeiten Ihrer Anwendung führen.

Kubernetes nutzt den Quota-Mechanismus des CFS, um das Limit durchzusetzen. Die Quota basiert auf einem Zeitfenster, nicht auf der verfügbaren CPU-Leistung. cfs_period_us definiert das Zeitfenster und beträgt immer 100000us (100ms). Ein Container mit einem Limit von 1 Core wird beispielsweise auf einem Node mit 2 Cores nach 50ms gedrosselt, auf einem Node mit 4 Cores bereits nach 25ms – unabhängig davon, wie viele CPU-Cores tatsächlich verbraucht werden.

RestartsObserved

Häufige Neustarts deuten auf ein Problem hin, das das angestrebte SLA mit hoher Wahrscheinlichkeit gefährdet.

Eviction

Eine Eviction bezeichnet das erzwungene Beenden und Entfernen eines laufenden Pods von einem Node. Eviction-Events entstehen meist durch Memory oder CPU Pressure auf einem Node.

Offizielle Dokumentation

Wird eine Eviction festgestellt, wird sofort ein Alert ausgelöst, um die Nutzer zu informieren. Stellen Sie sicher, dass Sie das Integrationsprofil konfiguriert und dem Cluster zugewiesen haben, um zeitnahe Benachrichtigungen über einen Slack- oder MS Teams-Kanal zu erhalten.

HPAAtMaxReplicasObserved

Steigt die Nachfrage nach einem Service oder einer Anwendung, skaliert der HPA das System, indem er dynamisch weitere Replicas hinzufügt. Sobald die maximal konfigurierte Anzahl an Replicas erreicht ist, meldet PerfectScale den Indikator HPAAtMaxReplicasObserved – das System kann mit den bestehenden Einstellungen also nicht weiter skalieren.

Der Schweregrad des Indikators hängt davon ab, wie lange ein Workload mit maximaler Replica-Anzahl läuft: Je länger dieser Zustand anhält, desto höher der Schweregrad.

Indikatoren für nicht gesetzte Limits/Requests

CpuRequestNotSet

Korrekt gesetzte CPU requests helfen dem Kubernetes-Scheduler, jedem Container die richtige Menge an CPU zuzuweisen – und stellen sicher, dass die Kapazität der Cluster-Nodes den Bedarf deckt.

MemRequestNotSet

Korrekt gesetzte MEMORY requests helfen dem Kubernetes-Scheduler, jedem Container die richtige Menge an Speicher zuzuweisen – und stellen sicher, dass die Kapazität der Cluster-Nodes den Bedarf deckt.

MemLimitNotSet

Ein korrekt gesetztes MEMORY limit schützt Ihren Worker-Node vor OOM und verhindert das Risiko einer Speicher-Überallokation.

Anders als CPU (komprimierbar, alle 100ms ein neuer Zyklus) ist MEMORY nicht komprimierbar und kann nicht überallokiert werden.

UnderProvisioning-Indikatoren

UnderProvisionedCpuRequest

Korrekt gesetzte CPU requests helfen dem Kubernetes-Scheduler, jedem Container die richtige Menge an CPU zuzuweisen – und stellen sicher, dass die Kapazität der Cluster-Nodes den Bedarf deckt.

UnderProvisionedMemRequest

Korrekt gesetzte MEMORY requests helfen dem Kubernetes-Scheduler, jedem Container die richtige Menge an Speicher zuzuweisen – und stellen sicher, dass die Kapazität der Cluster-Nodes den Bedarf deckt.

UnderProvisionedMemLimit

Ein korrekt gesetztes MEMORY limit schützt Ihren Worker-Node vor OOM und verhindert das Risiko einer Speicher-Überallokation. Ein zu niedrig angesetztes MEMORY limit kann jedoch unerwünschte OOM-Events auf Pod-Ebene auslösen und damit das angestrebte SLA gefährden.

Waste-Indikatoren

OverProvisionedCpuRequest

Korrekt gesetzte CPU requests helfen dem Kubernetes-Scheduler, jedem Container die richtige Menge an CPU zuzuweisen, damit die Kapazität der Cluster-Nodes den Bedarf deckt. Sind CPU Requests zu hoch angesetzt, werden Cloud-Ressourcen unnötig verschwendet – sie sind allokiert, werden aber nicht genutzt.

OverProvisionedMemoryRequest

Korrekt gesetzte MEMORY requests helfen dem Kubernetes-Scheduler, jedem Container die richtige Menge an Speicher zuzuweisen, damit die Kapazität der Cluster-Nodes den Bedarf deckt. Ist ein Memory Request jedoch zu hoch angesetzt, verschwenden Sie Cloud-Ressourcen, die allokiert, aber nie genutzt werden.

FAQ

1. Was ist Kubernetes Alerting?

Kubernetes Alerting benachrichtigt Nutzer über potenzielle Probleme im Cluster.

2. Wie richte ich Alerting in Kubernetes ein?

Alerting lässt sich mit Monitoring-Tools wie PerfectScale einrichten.

3. Welche Vorteile bietet Kubernetes Alerting?

Alerting sorgt für einen reibungslosen Betrieb und eine schnellere Problembehebung.

4. Wie kann ich Alerting-Regeln in Kubernetes anpassen?

Nutzer können Regeln auf Basis spezifischer Metriken definieren und konfigurieren.

5. Was sind Best Practices für Kubernetes Alerting?

Zu den Best Practices gehört das Einrichten von Alerts für zentrale Performance-Indikatoren.