Wenn Sie erst reagieren, nachdem Probleme aufgetreten sind, kann es zu Ausfallzeiten kommen. Damit Ihr System in Google Kubernetes Engine (GKE) stabil bleibt, müssen Sie potenzielle Probleme bevor sie sich auf Ihre Nutzer auswirken erkennen.
Auf dieser Seite erfahren Sie, wie Sie Ihre GKE-Umgebung mit Cloud Monitoring proaktiv überwachen können, indem Sie Leistungskennzahlen im Blick behalten, Trends visualisieren und Benachrichtigungen einrichten, um Probleme wie steigende Fehlerraten oder Ressourcenbeschränkungen zu erkennen.
Diese Informationen sind wichtig für Plattformadministratoren und ‑operatoren, die für die Integrität, Zuverlässigkeit und Effizienz der GKE-Umgebung verantwortlich sind. Außerdem können Anwendungsentwickler so die Leistung ihrer App unter realen Bedingungen nachvollziehen, Regressionen bei Bereitstellungen erkennen und Optimierungsmöglichkeiten ermitteln. Weitere Informationen zu den gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.
Nützliche Messwerte ansehen
GKE sendet automatisch eine Reihe von Messwerten an Cloud Monitoring. In den folgenden Abschnitten sind einige der wichtigsten Messwerte für die Fehlerbehebung aufgeführt:
- Messwerte für Containerleistung und -zustand
- Messwerte für Knotenleistung und ‑zustand
- Messwerte für Pod-Leistung und -Zustand
Eine vollständige Liste der GKE-Messwerte finden Sie unter GKE-Systemmesswerte.
Messwerte für Containerleistung und -zustand
Beginnen Sie mit diesen Messwerten, wenn Sie ein Problem mit einer bestimmten App vermuten. Mit diesen Messwerten können Sie den Zustand Ihrer App überwachen und beispielsweise feststellen, ob ein Container häufig neu gestartet wird, der Arbeitsspeicher nicht ausreicht oder die CPU-Grenzwerte überschritten werden.
Messwert | Beschreibung | Fehlerbehebung bei Signifikanz |
---|---|---|
kubernetes.io/container/cpu/limit_utilization |
Der Bruchteil des CPU-Limits, der aktuell auf der Instanz verwendet wird. Dieser Wert darf größer als 1 sein, da ein Container sein CPU-Limit möglicherweise überschreiten darf. | Gibt an, ob die CPU gedrosselt wird. Hohe Werte können zu Leistungseinbußen führen. |
kubernetes.io/container/memory/limit_utilization |
Der Bruchteil des Speicherlimits, der aktuell auf der Instanz verwendet wird. Dieser Wert darf nicht größer als 1 sein. | Überwacht das Risiko von OutOfMemory-Fehlern (OOM). |
kubernetes.io/container/memory/used_bytes |
Tatsächlich vom Container belegter Arbeitsspeicher in Byte. | Verfolgt den Arbeitsspeicherverbrauch, um potenzielle Speicherlecks oder das Risiko von OOM-Fehlern zu erkennen. |
kubernetes.io/container/memory/page_fault_count |
Anzahl der Seitenfehler nach Typ: groß und klein. | Weist auf einen erheblichen Arbeitsspeicherdruck hin. Schwerwiegende Seitenfehler bedeuten, dass der Arbeitsspeicher vom Laufwerk gelesen wird (Swapping), auch wenn die Arbeitsspeicherlimits nicht erreicht sind. |
kubernetes.io/container/restart_count |
Anzahl der Containerneustarts. | Hebt potenzielle Probleme wie abstürzende Apps, Fehlkonfigurationen oder Ressourcenerschöpfung durch eine hohe oder steigende Anzahl von Neustarts hervor. |
kubernetes.io/container/ephemeral_storage/used_bytes |
Nutzung des lokalen flüchtigen Speichers in Byte. | Überwacht die temporäre Laufwerknutzung, um zu verhindern, dass Pods aufgrund von vollem flüchtigem Speicher entfernt werden. |
kubernetes.io/container/cpu/request_utilization |
Der Bruchteil der angeforderten CPU, der aktuell auf der Instanz verwendet wird. Dieser Wert darf größer als 1 sein, da die Auslastung die Anfrage überschreiten kann. | Identifiziert über- oder unterdimensionierte CPU-Anfragen, damit Sie die Ressourcenzuweisung optimieren können. |
kubernetes.io/container/memory/request_utilization |
Der Bruchteil des angeforderten Speichers, der aktuell auf der Instanz verwendet wird. Dieser Wert darf größer als 1 sein, da die Auslastung die Anfrage überschreiten kann. | Identifiziert über- oder unterdimensionierte Arbeitsspeicheranforderungen, um die Planung zu verbessern und OOM-Fehler zu vermeiden. |
Knotenleistungs- und ‑zustandsmesswerte
Sehen Sie sich diese Messwerte an, wenn Sie Probleme mit der zugrunde liegenden GKE-Infrastruktur diagnostizieren müssen. Diese Messwerte sind entscheidend, um den allgemeinen Zustand und die Kapazität Ihrer Knoten zu verstehen. Sie helfen Ihnen, zu untersuchen, ob der Knoten fehlerhaft ist oder unter Druck steht oder ob der Knoten genügend Arbeitsspeicher hat, um neue Pods zu planen.
Messwert | Beschreibung | Fehlerbehebung bei Signifikanz |
---|---|---|
kubernetes.io/node/cpu/allocatable_utilization |
Der Bruchteil der zuweisbaren CPU, der aktuell auf der Instanz verwendet wird. | Gibt an, ob die Summe der Pod-Nutzung die verfügbaren CPU-Ressourcen des Knotens überlastet. |
kubernetes.io/node/memory/allocatable_utilization |
Der Bruchteil des zuweisbaren Speichers, der aktuell auf der Instanz verwendet wird. Dieser Wert darf 1 nicht überschreiten, da die Nutzung nicht höher als die Anzahl der zuweisbaren Speicherbyte sein darf. | Weist darauf hin, dass der Knoten nicht genügend Arbeitsspeicher für die Planung neuer Pods oder für den Betrieb vorhandener Pods hat, insbesondere wenn die Werte hoch sind. |
kubernetes.io/node/status_condition (BETA) |
Bedingung eines Knotens aus dem Feld „Knotenstatusbedingung“. | Meldet Knotenstatusbedingungen wie Ready , MemoryPressure oder DiskPressure . |
kubernetes.io/node/ephemeral_storage/used_bytes |
Vom Knoten verwendete, lokale flüchtige Speicherbyte. | Sie erhalten Warnungen bei hoher Nutzung des temporären Speichers, um Fehler beim Starten von Pods oder das Entfernen von Pods zu verhindern. |
kubernetes.io/node/ephemeral_storage/inodes_free |
Anzahl der freien Indexknoten (Inodes) im lokalen flüchtigen Speicher. | Überwacht die Anzahl der freien Inodes. Ein Mangel an Inodes kann Vorgänge stoppen, auch wenn Speicherplatz verfügbar ist. |
kubernetes.io/node/interruption_count (BETA) |
Unterbrechungen sind Systementfernungen von Infrastruktur, während der Kunde die Kontrolle über diese Infrastruktur hat. Dieser Messwert gibt die aktuelle Anzahl der Unterbrechungen nach Typ und Grund an. | Hier wird erklärt, warum ein Knoten aufgrund von Systementfernungen unerwartet verschwinden kann. |
Leistungs- und Gesundheitsmesswerte für Pods
Mithilfe dieser Messwerte können Sie Probleme im Zusammenhang mit der Interaktion eines Pods mit seiner Umgebung beheben, z. B. Netzwerk- und Speicherprobleme. Verwenden Sie diese Messwerte, wenn Sie langsam startende Pods diagnostizieren, potenzielle Probleme mit der Netzwerkverbindung untersuchen oder den Speicher proaktiv verwalten müssen, um Schreibfehler aufgrund von vollen Volumes zu vermeiden.
Messwert | Beschreibung | Fehlerbehebung bei Signifikanz |
---|---|---|
kubernetes.io/pod/network/received_bytes_count |
Gesamtzahl der vom Pod über das Netzwerk empfangenen Byte. | Erkennt ungewöhnliche Netzwerkaktivitäten (hoch oder niedrig), die auf App- oder Netzwerkprobleme hinweisen können. |
kubernetes.io/pod/network/policy_event_count (BETA) |
Änderung der Anzahl der in der Datenebene beobachteten Netzwerkrichtlinienereignisse. | Identifiziert Verbindungsprobleme, die durch Netzwerkrichtlinien verursacht werden. |
kubernetes.io/pod/volume/utilization |
Der Bruchteil des Volumes, der aktuell von der Instanz belegt wird. Dieser Wert darf nicht größer als 1 sein, da die Auslastung den verfügbaren Gesamtspeicherplatz des Volumes nicht überschreiten darf. | Ermöglicht die proaktive Verwaltung des Speicherplatzes von Volumes, indem gewarnt wird, wenn eine hohe Auslastung (nahe 1) zu Schreibfehlern führen könnte. |
kubernetes.io/pod/latencies/pod_first_ready (BETA) |
Die End-to-End-Startlatenz des Pods (von „Created“ bis „Ready“), einschließlich des Abrufens von Images. | Diagnostiziert Pods, die langsam starten. |
Messwerte mit dem Metrics Explorer visualisieren
Um den Status Ihrer GKE-Umgebung zu visualisieren, können Sie mit dem Metrics Explorer Diagramme auf Grundlage von Messwerten erstellen.
So verwenden Sie den Metrics Explorer:
Rufen Sie in der Google Cloud Console die Seite Metrics Explorer auf:
Wählen Sie im Feld Messwerte den Messwert aus, den Sie untersuchen möchten, oder geben Sie ihn ein.
Sehen Sie sich die Ergebnisse an und beobachten Sie Trends im Zeitverlauf.
Wenn Sie beispielsweise den Arbeitsspeicherverbrauch von Pods in einem bestimmten Namespace untersuchen möchten, können Sie Folgendes tun:
- Wählen Sie in der Liste Messwert auswählen den Messwert
kubernetes.io/container/memory/used_bytes
aus und klicken Sie auf Übernehmen. - Klicken Sie auf Filter hinzufügen und wählen Sie namespace_name aus.
- Wählen Sie in der Liste Wert den Namespace aus, den Sie untersuchen möchten.
- Wählen Sie im Feld Aggregation die Option Summe > pod_name aus und klicken Sie auf OK. Mit dieser Einstellung wird für jeden Pod eine separate Zeitachse angezeigt.
- Klicken Sie auf Diagramm speichern.
Das resultierende Diagramm zeigt die Speichernutzung für jeden Pod im Zeitverlauf. So können Sie Pods mit ungewöhnlich hohem oder sprunghaft ansteigendem Speicherverbrauch visuell erkennen.
Mit Metrics Explorer können Sie die Messwerte, die Sie sehen möchten, sehr flexibel erstellen. Weitere Informationen zu den erweiterten Optionen des Metrics Explorers finden Sie in der Cloud Monitoring-Dokumentation unter Diagramme mit dem Metrics Explorer erstellen.
Benachrichtigungen für die proaktive Problemerkennung erstellen
Wenn Sie Benachrichtigungen erhalten möchten, wenn etwas schiefgeht oder wenn Messwerte bestimmte Grenzwerte überschreiten, richten Sie Benachrichtigungsrichtlinien in Cloud Monitoring ein.
So richten Sie beispielsweise eine Benachrichtigungsrichtlinie ein, die Sie benachrichtigt, wenn das CPU-Limit des Containers fünf Minuten lang über 80% liegt:
Rufen Sie in der Google Cloud -Console- die Seite Benachrichtigungen auf.
Klicken Sie auf Richtlinie erstellen.
Filtern Sie im Feld Messwert auswählen nach
CPU limit utilization
und wählen Sie dann den folgenden Messwert aus: kubernetes.io/container/cpu/limit_utilization.Klicken Sie auf Übernehmen.
Lassen Sie das Feld Filter hinzufügen leer. Mit dieser Einstellung wird eine Benachrichtigung ausgelöst, wenn ein Cluster gegen den Schwellenwert verstößt.
Führen Sie im Bereich Daten transformieren folgende Schritte aus:
- Wählen Sie in der Liste Rollierendes Fenster die Option 1 Minute aus. Mit dieser Einstellung berechnet Google Cloud jede Minute einen Durchschnittswert.
Wählen Sie in der Liste Funktion für rollierendes Zeitfenster die Option Mittelwert aus.
Bei beiden Einstellungen wird die CPU-Limit-Auslastung für jeden Container jede Minute gemittelt.
Klicken Sie auf Weiter.
Führen Sie im Abschnitt Benachrichtigung konfigurieren die folgenden Schritte aus:
- Wählen Sie als Bedingungstyp die Option Schwellenwert aus.
- Wählen Sie unter Benachrichtigungstrigger die Option Bei jedem Verstoß aus.
- Wählen Sie für Grenzwertposition die Option Über Grenzwert aus.
- Geben Sie für Grenzwert den Wert
0.8
ein. Dieser Wert stellt den 80‑%‑Schwellenwert dar, den Sie überwachen möchten. - Klicken Sie auf Erweiterte Optionen.
- Wählen Sie in der Liste Retest window (Zeitraum für erneuten Test) die Option 5 min aus. Mit dieser Einstellung wird die Benachrichtigung nur ausgelöst, wenn die CPU-Auslastung über einen kontinuierlichen Zeitraum von fünf Minuten über 80 % bleibt. Dadurch werden Fehlalarme durch kurze Spitzen reduziert.
- Geben Sie im Feld Bedingungsname einen aussagekräftigen Namen für die Bedingung ein.
- Klicken Sie auf Weiter.
Führen Sie im Bereich Benachrichtigungen konfigurieren und Benachrichtigung fertigstellen die folgenden Schritte aus:
- Wählen Sie in der Liste Benachrichtigungskanäle den Kanal aus, über den Sie die Benachrichtigung erhalten möchten. Wenn Sie keinen Kanal haben, klicken Sie auf Benachrichtigungskanäle verwalten, um einen zu erstellen.
- Geben Sie im Feld Benachrichtigungsrichtlinie benennen einen eindeutigen und aussagekräftigen Namen für die Richtlinie ein.
- Behalten Sie in allen anderen Feldern die Standardwerte bei.
- Klicken Sie auf Weiter.
Prüfen Sie die Richtlinie. Wenn alles korrekt aussieht, klicken Sie auf Richtlinie erstellen.
Weitere Informationen zum Erstellen von Benachrichtigungen finden Sie in der Cloud Monitoring-Dokumentation unter Benachrichtigungen – Übersicht.
Nächste Schritte
Lesen Sie Diagnose mit Gemini Cloud Assist beschleunigen (nächste Seite in dieser Reihe).
Hinweise zur Behebung bestimmter Probleme finden Sie in den Anleitungen zur Fehlerbehebung für GKE.
Wenn Sie in der Dokumentation keine Lösung für Ihr Problem finden, lesen Sie den Abschnitt Support erhalten. Dort finden Sie weitere Hilfe, z. B. zu den folgenden Themen:
- Sie können eine Supportanfrage erstellen, indem Sie sich an den Cloud Customer Care wenden.
- Support von der Community erhalten, indem Sie Fragen auf Stack Overflow stellen und mit dem Tag
google-kubernetes-engine
nach ähnlichen Problemen suchen. Sie können auch dem#kubernetes-engine
-Slack-Kanal beitreten, um weiteren Community-Support zu erhalten. - Sie können Fehler melden oder Funktionsanfragen stellen, indem Sie die öffentliche Problemverfolgung verwenden.