In diesem Dokument wird beschrieben, wie Sie Google Kubernetes Engine (GKE) konfigurieren, um Messwerte an Cloud Monitoring zu senden. In Cloud Monitoring können Messwerte benutzerdefinierte Dashboards füllen, Benachrichtigungen generieren, Service Level Objectives erstellen oder mit der Cloud Monitoring API von Drittanbieter-Monitoring-Diensten abgerufen werden.
GKE bietet mehrere Quellen von Messwerten:
- Systemmesswerte: Messwerte aus wichtigen Systemkomponenten, die Low-Level-Ressourcen wie CPU, Arbeitsspeicher und Speicher beschreiben.
- Google Cloud Managed Service for Prometheus: Sie können Ihre Arbeitslasten mithilfe von Prometheus überwachen und Benachrichtigen dazu senden, ohne Prometheus manuell in großem Umfang verwalten und betreiben zu müssen.
Pakete für Messwerte zur Beobachtbarkeit:
- Messwerte der Steuerungsebene: Messwerte, die aus bestimmten Komponenten der Steuerungsebene wie dem API-Server und dem Planer exportiert wurden.
Kube State Metrics: Eine ausgewählte Gruppe von Messwerten, die aus dem Kube State-Dienst exportiert wurden und zur Überwachung der den Status von Kubernetes-Objekten wie Pods, Deployments usw. Informationen zu den enthaltenen Messwerten finden Sie unter Kube State Metrics verwenden.
Das Kube State-Paket ist eine verwaltete Lösung. Wenn Sie mehr Flexibilität benötigen, z. B. wenn Sie zusätzliche Messwerte erfassen oder Extraktionsintervalle verwalten oder andere Ressourcen extrahieren möchten, können Sie das Paket deaktivieren, falls es aktiviert ist, und Ihre eigene Instanz des Open-Source-Diensts für Kube State Metrics bereitstellen. Weitere Informationen finden Sie in der Google Cloud Managed Service for Prometheus-Exporter-Dokumentation für Kube State Metrics.
cAdvisor/Kubelet: Eine ausgewählte Gruppe von cAdvisor- und Kubelet-Messwerten. Eine Liste der enthaltenen Messwerte finden Sie unter cAdvisor-/Kubelet-Messwerte verwenden.
Das cAdvisor-/Kubelet-Paket ist eine verwaltete Lösung. Wenn Sie mehr Flexibilität benötigen, z. B. wenn Sie zusätzliche Messwerte erfassen oder Extraktionsintervalle verwalten oder andere Ressourcen extrahieren möchten, haben Sie folgende Möglichkeiten: Sie können das Paket deaktivieren, falls es aktiviert ist, und Ihre eigene Instanz der Open-Source-Dienste für cAdvisor-/Kubelet-Messwerte bereitstellen.
NVIDIA Data Center GPU Manager-Messwerte (DCGM): Messwerte aus DCGM, die einen umfassenden Überblick über GPU-Zustand, ‑Leistung und ‑Auslastung bieten.
Sie können auch die automatische Anwendungsüberwachung für bestimmte Arbeitslasten konfigurieren.
Systemmesswerte
Wenn ein Cluster erstellt wird, erfasst GKE standardmäßig bestimmte Messwerte, die von Systemkomponenten ausgegeben werden.
Sie können auswählen, ob Messwerte von Ihrem GKE-Cluster an Cloud Monitoring gesendet werden sollen oder nicht. Wenn Sie Messwerte an Cloud Monitoring senden, müssen Sie Systemmesswerte senden.
Alle GKE-Systemmesswerte werden in Cloud Monitoring mit dem Präfix kubernetes.io
aufgenommen.
Preise
In Cloud Monitoring fallen keine Kosten für die Aufnahme von GKE-Systemmesswerten an. Weitere Informationen finden Sie unter Cloud Monitoring-Preise.
Erfassung von Systemmesswerten konfigurieren
Übergeben Sie zum Aktivieren der Systemmesswerterfassung den Wert SYSTEM
an das Flag von --monitoring
des gcloud container clusters create
- oder gcloud container clusters update
-Befehls.
Verwenden Sie zum Deaktivieren der Erfassung von Systemmesswerten für das Flag --monitoring
den Wert NONE
. Wenn die Erfassung von Systemmesswerten deaktiviert ist, sind grundlegende Informationen wie CPU-, Arbeitsspeicher- und Festplattennutzung für einen Cluster nicht verfügbar, wenn Sie Messwerte zur Beobachtbarkeit aufrufen.
Für GKE Autopilot-Cluster können Sie die Erfassung von Systemmesswerten nicht deaktivieren.
Weitere Informationen zur Einbindung von Cloud Monitoring in GKE finden Sie unter Beobachtbarkeit für GKE.
Informationen zum Konfigurieren der Erfassung von Systemmesswerten mit Terraform finden Sie im Block monitoring_config
in der Terraform-Registry für google_container_cluster
.
Allgemeine Informationen zur Verwendung von Google Cloud mit Terraform finden Sie unter Terraform mit Google Cloud.
Liste der Systemmesswerte
Systemmesswerte umfassen Messwerte aus wichtigen Systemkomponenten, die für Kubernetes wichtig sind. Eine Liste dieser Messwerte finden Sie unter GKE-Systemmesswerte.
Wenn Sie Cloud Monitoring für Ihren Cluster aktivieren, können Sie das Systemmonitoring (--monitoring=SYSTEM
) nicht deaktivieren.
Fehlerbehebung bei Systemmesswerten
Wenn in Cloud Monitoring keine Systemmesswerte wie erwartet verfügbar sind, lesen Sie den Abschnitt Fehlerbehebung bei Systemmesswerten.
Paket: Messwerte der Steuerungsebene
Sie können einen GKE-Cluster so konfigurieren, dass bestimmte Messwerte, die vom Kubernetes API-Server, vom Planer und vom Controller-Manager ausgegeben werden, an Cloud Monitoring gesendet werden.
Weitere Informationen finden Sie unter Messwerte der Steuerungsebene erfassen und ansehen.
Paket:: Kube State Metrics
Sie können einen GKE-Cluster so konfigurieren, dass eine ausgewählte Gruppe von Kube State Metrics im Prometheus-Format an Cloud Monitoring gesendet wird. Dieses Paket von Kube State Metrics enthält Messwerte für Pods, Deployments, StatefulSets, DaemonSets, HorizontalPodAutoscaler-Ressourcen, nichtflüchtige Volumes, Ansprüche auf nichtflüchtige Volumes und JobSets.
Weitere Informationen finden Sie unter Kube State Metrics erfassen und ansehen.
Paket: cAdvisor-/Kubelet-Messwerte
Sie können einen GKE-Cluster so konfigurieren, dass eine ausgewählte Gruppe von cAdvisor/Kubelet-Messwerten im Prometheus-Format an Cloud Monitoring gesendet wird. Die ausgewählte Gruppe von Messwerten ist eine Teilmenge der großen Gruppe von cAdvisor-/Kubelet-Messwerten, die standardmäßig in jede Kubernetes-Bereitstellung integriert sind. Die kuratierten cAdvisor-/Kubelet-Messwerte sollen die nützlichsten Messwerte liefern, um das Aufnahmevolumen und die damit verbundenen Kosten zu reduzieren.
Weitere Informationen finden Sie unter cAdvisor-/Kubelet-Messwerte erfassen und ansehen.
Paket: NVIDIA Data Center GPU Manager-Messwerte (DCGM)
Sie können GPU-Auslastung, Leistung und Zustand überwachen, indem Sie KGE zum Senden von NVIDIA Data Center GPU Manager-Messwerte (DCGM) zu Cloud Monitoring konfigurieren.
Weitere Informationen finden Sie unter NVIDIA Data Center GPU Manager-Messwerte (DCGM) erheben und ansehen.
Messwertpakete deaktivieren
Sie können die Verwendung von Messwertpaketen im Cluster deaktivieren. Sie können bestimmte Pakete deaktivieren, um Kosten zu senken, oder wenn Sie einen alternativen Mechanismus zum Erfassen der Messwerte verwenden, z. B. Google Cloud Managed Service for Prometheus und einen Exporter.
Console
So deaktivieren Sie die Erfassung von Messwerten auf dem Tab Details für den Cluster:
-
Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Kubernetes Engine lautet.
Klicken Sie auf den Namen Ihres Clusters.
Klicken Sie in der Zeile Funktionen mit der Bezeichnung Cloud Monitoring auf das Symbol Bearbeiten.
Entfernen Sie im Drop-down-Menü Komponenten die Häkchen für die Messwertkomponenten, die Sie deaktivieren möchten.
Klicken Sie auf OK.
Klicken Sie auf Änderungen speichern.
gcloud
Öffnen Sie ein Terminalfenster mit dem Google Cloud SDK und der installierten Google Cloud CLI. Eine Möglichkeit hierfür ist die Verwendung von Cloud Shell:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Rufen Sie den Befehl
gcloud container clusters update
auf und übergeben Sie einen aktualisierten Satz von Werten an das Flag--monitoring
. Die für das Flag--monitoring
bereitgestellten Werte überschreiben alle vorherigen Einstellungen.Wenn Sie beispielsweise die Erfassung aller Messwerte außer Systemmesswerten deaktivieren möchten, führen Sie den folgenden Befehl aus:
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \
--enable-managed-prometheus
\ --monitoring=SYSTEMMit diesem Befehl wird die Erfassung aller zuvor konfigurierten Messwertpakete deaktiviert.
Terraform
Informationen zum Konfigurieren der Erfassung von Messwerten mit Terraform finden Sie im Block monitoring_config
in der Terraform-Registry für google_container_cluster
.
Allgemeine Informationen zur Verwendung von Google Cloud mit Terraform finden Sie unter Terraform mit Google Cloud.
Informationen zu Ihrer Monitoring-Rechnung
Mit Cloud Monitoring können Sie die Messwerte der Steuerungsebene oder Kube State Metrics ermitteln, die die größte Anzahl von Stichproben schreiben. Diese Messwerte tragen am meisten zu Ihren Kosten bei. Nachdem Sie die teuersten Messwerte ermittelt haben, können Sie die Extraktionskonfigurationen ändern, um diese Messwerte entsprechend zu filtern.
Auf der Cloud Monitoring-Seite Messwertverwaltung können Sie den Betrag steuern, den Sie für abrechenbare Messwerte ausgeben, ohne die Beobachtbarkeit zu beeinträchtigen. Die Seite Messwertverwaltung enthält die folgenden Informationen:
- Aufnahmevolumen für byte- und probenbasierte Abrechnung für Messwertdomains und einzelne Messwerte
- Daten zu Labels und zur Kardinalität von Messwerten
- Anzahl der Lesevorgänge für jeden Messwert
- Nutzung von Messwerten in Benachrichtigungsrichtlinien und benutzerdefinierten Dashboards
- Fehlerrate beim Schreiben von Messwerten
Auf der Seite Messwertverwaltung können Sie auch nicht benötigte Messwerte ausschließen, um unnötige Kosten bei der Datenaufnahme zu vermeiden.
So rufen Sie die Seite Messwertverwaltung auf:
-
Rufen Sie in der Google Cloud Console die Seite
Messwertverwaltung auf:Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wählen Sie in der Symbolleiste das Zeitfenster aus. Standardmäßig werden auf der Seite Messwertverwaltung Informationen zu den Messwerten angezeigt, die am Vortag erfasst wurden.
Weitere Informationen zur Seite Messwertverwaltung finden Sie unter Messwertnutzung ansehen und verwalten.
Tun Sie Folgendes, um zu ermitteln, welche Messwerte der Steuerungsebene oder welche Kube Static Metrics die größte Anzahl an aufgenommenen Stichproben haben:
-
Rufen Sie in der Google Cloud Console die Seite
Messwertverwaltung auf:Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
Klicken Sie in der Kurzübersicht Aufgenommene kostenpflichtige Stichproben auf Diagramme ansehen.
Suchen Sie das Diagramm Volume-Aufnahme nach Namespace und klicken Sie dann auf more_vert Weitere Diagrammoptionen.
Prüfen Sie im Feld Messwert, ob die folgende Ressource und der folgende Messwert ausgewählt sind:
Metric Ingestion Attribution
undSamples written by attribution id
.Führen Sie auf der Seite Filter folgende Schritte aus:
Prüfen Sie, ob im Feld Label der Wert
attribution_dimension
steht.Prüfen Sie, ob im Feld Vergleich der Wert
= (equals)
angegeben ist.Wählen Sie im Feld Wert
cluster
aus.
Entfernen Sie die Einstellung Gruppieren nach.
Optional können Sie nach bestimmten Messwerten filtern. Beispielsweise enthalten die API-Servermesswerte der Steuerungsebene "apiserver" als Teil des Messwertnamens und die Kube-State-Pod-Messwerte enthalten alle "kube_pod" als Teil des Messwertnamens, sodass Sie nach Messwerten mit diesen Strings filtern können:
Klicken Sie auf Filter hinzufügen.
Wählen Sie im Feld Label die Option
metric_type
aus.Wählen Sie im Feld Vergleich die Option
=~ (equals regex)
aus.Geben Sie im Feld Wert
.*apiserver.*
oder.*kube_pod.*
ein.
Optional können Sie die Anzahl der von der GKE-Region oder dem Projekt aufgenommenen Stichproben gruppieren.
Klicken Sie auf Gruppieren nach.
Achten Sie darauf, dass metric_type ausgewählt ist.
Wählen Sie location aus, um nach GKE-Region zu gruppieren.
Wählen Sie project_id aus, um nach Projekt zu gruppieren.
Klicken Sie auf OK.
Optional können Sie die Anzahl der Stichproben gruppieren, die vom GKE-Clusternamen aufgenommen wurden:
Klicken Sie auf Gruppieren nach.
Um nach dem GKE-Clusternamen zu gruppieren, müssen Sie attribution_dimension und attribution_id ausgewählt haben.
Klicken Sie auf OK.
Um das Aufnahmevolumen für jeden der Messwerte anzuzeigen, wählen Sie auf der Schaltfläche Diagramm Tabelle Beides Beides aus. In der Tabelle sehen Sie in der Spalte Wert das aufgenommene Volumen für jeden Messwert.
Klicken Sie zweimal auf die Spaltenüberschrift Wert, um die Messwerte nach absteigendem Erfassungsvolumen zu sortieren.
Mit diesen Schritten werden die Messwerte mit der höchsten Rate an Stichproben, die in Cloud Monitoring aufgenommen wurden, angezeigt. Da die Messwerte in den Beobachtbarkeitspaketen nach der Anzahl der aufgenommenen Stichproben abgerechnet werden, sollten Sie auf die Messwerte mit der größten Rate aufgenommener Stichproben achten.
Weitere Messwerte
Neben den in diesem Dokument beschriebenen Systemmesswerten und Messwertpaketen stehen auch Istio-Messwerte für GKE-Cluster zur Verfügung. Preisinformationen finden Sie unter Cloud Monitoring-Preise.
Verfügbare Messwerte
In der folgenden Tabelle sind die unterstützten Werte für das Flag --monitoring
der Befehle create und update aufgeführt.
Quelle | --monitoring -Wert |
Erfasste Messwerte |
---|---|---|
Keine | NONE |
Keine an Cloud Monitoring gesendeten Messwerte; im Cluster ist kein Agent für die Messwerterfassung installiert. Dieser Wert wird für Autopilot-Cluster nicht unterstützt. |
System | SYSTEM |
Messwerte aus wesentlichen Systemkomponenten, die für Kubernetes erforderlich sind. Eine vollständige Liste der Messwerte finden Sie unter Kubernetes-Messwerte. |
API-Server | API_SERVER |
Messwerte aus kube-apiserver .
Eine vollständige Liste der Messwerte finden Sie unter
API-Servermesswerte. |
Planer | SCHEDULER |
Messwerte aus kube-scheduler .
Eine vollständige Liste der Messwerte finden Sie unter
Planer-Messwerte.
|
Controller-Manager | CONTROLLER_MANAGER |
Messwerte aus kube-controller-manager .
Eine vollständige Liste der Messwerte finden Sie unter
Controller Manager-Messwerte. |
Nichtflüchtiges Volume (Speicher) | STORAGE |
Speichermesswerte von kube-state-metrics .
Enthält Messwerte für nichtflüchtiges Volume und Ansprüche auf nichtflüchtige Volumes.
Eine vollständige Liste der Messwerte finden Sie unter
Speichermesswerte.
|
Pod | POD |
Pod-Messwerte aus kube-state-metrics .
Eine vollständige Liste der Messwerte finden Sie unter
Pod-Messwerte.
|
Bereitstellung | DEPLOYMENT |
Bereitstellungsmesswerte aus kube-state-metrics .
Eine vollständige Liste der Messwerte finden Sie unter
Bereitstellungsmesswerte.
|
StatefulSet | STATEFULSET |
StatefulSet-Messwerte von kube-state-metrics .
Eine vollständige Liste der Messwerte finden Sie unter
StatefulSet-Messwerte. |
DaemonSet | DAEMONSET |
DaemonSet-Messwerte aus kube-state-metrics .
Eine vollständige Liste der Messwerte finden Sie unter
DaemonSet-Messwerte.
|
HorizonalPodAutoscaler | HPA |
HPA-Messwerte von kube-state-metrics .
Sehen Sie sich eine vollständige Liste von
Horizon-PodAutoscaler-Messwerten an.
|
cAdvisor | CADVISOR |
cAdvisor-Messwerte aus dem Messwertpaket „cAdvisor/Kubelet“. Eine vollständige Liste der Messwerte finden Sie unter cAdvisor-Messwerte. |
Kubelet | KUBELET |
Kubelet-Messwerte aus cAdvisor/Kubelet Eine vollständige Liste der Messwerte finden Sie unter Kubelet-Messwerte. |
NVIDIA Data Center GPU Manager-Messwerte (DCGM) | DCGM |
Messwerte von NVIDIA Data Center GPU Manager (DCGM). |
Darüber hinaus können Sie mithilfe von Google Cloud Managed Service for Prometheus Messwerte im Prometheus-Stil, die von einer beliebigen GKE-Arbeitslast bereitgestellt werden, erfassen. Damit können Sie Ihre Arbeitslasten mithilfe von Prometheus überwachen und melden, ohne Prometheus manuell im großen Maßstab verwalten und betreiben zu müssen.
Nächste Schritte
- Informationen zur Fehlerbehebung bei Systemmesswerten
- Informationen zum Erfassen und Ansehen von Kube State Metrics
- Beobachtbarkeitsmesswerte aufrufen
- Messwerte der Steuerungsebene erfassen und ansehen