Cloud Monitoring

Auf dieser Seite wird erläutert, wie Sie mit Cloud Monitoring Ihre Google Kubernetes Engine-Cluster (GKE) beobachten.

Überblick

Verwenden Sie Monitoring, um in Ihren GKE-Clustern Signale zu beobachten und Vorgänge zu erstellen.

Cloud Monitoring überwacht Systemmesswerte und benutzerdefinierte Messwerte. Systemmesswerte sind Messungen der Clusterinfrastruktur, z. B. CPU- und Speicherauslastung. Benutzerdefinierte Messwerte sind anwendungsspezifische Messwerte, die Sie selbst festlegen, z. B. die Anzahl der aktiven Nutzersitzungen oder die Anzahl der gerenderten Seiten.

Für Systemmesswerte erstellt Cloud Monitoring ein Deployment, das in regelmäßigen Abständen eine Verbindung zu jedem Knoten herstellt und Messwerte zu den jeweiligen Pods und Containern erfasst. Im Anschluss werden diese Messwerte an Monitoring gesendet.

Messwerte, die sich auf die Verwendung von Systemressourcen beziehen, werden aus den folgenden Quellen gesammelt:

  • CPU: container/cpu/usage_time
  • Arbeitsspeicher: container/memory/bytes_used, erfasst aus memory.usage_in_bytes in cgroup
  • Entfernbarer Speicher: container/memory/bytes_used, erfasst aus dem Feld total_inactive_file in memory.stat
  • Nicht entfernbarer Speicher: erfasst durch memory.usage_in_bytes – memory.total_inactive_file
  • Laufwerk: container/disk/bytes_used

Eine Liste der anderen von GKE erfassten Systemmesswerte finden Sie in der Messwertliste.

Informationen zum Einrichten von benutzerdefinierten Messwerten finden Sie im Abschnitt Benutzerdefinierte Messwerte verwenden oder in der Anleitung Deployments mit benutzerdefinierten Messwerten automatisch skalieren.

Hinweise

Führen Sie zur Vorbereitung auf diese Aufgabe folgende Schritte aus:

  • Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist.
  • Aktivieren Sie Google Kubernetes Engine API
  • Prüfen Sie, ob das Cloud SDK installiert ist.
  • Geben Sie Ihre standardmäßige Projekt-ID an:
    gcloud config set project [PROJECT_ID]
  • Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Standardzone für Compute Engine fest:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Wenn Sie mit regionalen Clustern arbeiten, legen Sie die Standardregion für Compute Engine fest:
    gcloud config set compute/region [COMPUTE_REGION]
  • Aktualisieren Sie gcloud auf die neueste Version:
    gcloud components update

Monitoring aktivieren

Sie können einen Cluster mit aktiviertem Monitoring erstellen oder Monitoring in einem vorhandenen Cluster aktivieren.

Die Knotenpools (einschließlich des Standardknotenpools) Ihres Clusters müssen dem erforderlichen Google Cloud-Bereich zugeordnet sein, um mit Monitoring zu interagieren (Bereich https://www.googleapis.com/auth/monitoring). Wenn Sie einen neuen Cluster mit Monitoring erstellen, legt GKE diesen Bereich automatisch fest. Bestehende Cluster haben jedoch möglicherweise nicht die erforderlichen Berechtigungen.

Cluster mit Monitoring erstellen

gcloud

Wenn Sie einen Cluster erstellen, wird automatisch das Flag --enable-cloud-monitoring angegeben, das Monitoring im Cluster aktiviert.

Wenn Sie dieses Standardverhalten deaktivieren möchten, geben Sie das Flag --no-enable-cloud-monitoring an.

Console

  1. Öffnen Sie in der Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf Cluster erstellen.

  3. Konfigurieren Sie den Cluster je nach Bedarf.

  4. Klicken Sie auf Erweiterte Optionen. Prüfen Sie, ob die Option Stackdriver Monitoring-Dienst aktivieren ausgewählt ist.

  5. Klicken Sie auf Erstellen.

Monitoring für einen vorhandenen Cluster aktivieren

gcloud

Führen Sie den folgenden Befehl aus, um das Monitoring für einen vorhandenen Cluster zu aktivieren. Dabei steht [CLUSTER_NAME] für den Namen des Clusters.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

Wenn Sie Ihren Cluster ursprünglich ohne Monitoring erstellt haben, haben die Knotenpools des Clusters möglicherweise nicht den erforderlichen Google Cloud-Bereich. Zur Umgehung dieses Problems können Sie einen neuen Knotenpool mit der gleichen Anzahl an Knoten und dem erforderlichen Bereich so erstellen:

gcloud container node-pools create adjust-scope \
        --cluster [CLUSTER_NAME] \
        --num-nodes [NUM_NODES] \
        --scopes https://www.googleapis.com/auth/monitoring

Nachdem Sie den neuen Knotenpool erstellt haben, können Sie Ihre vorhandenen Pods in den neuen Knotenpool mit dem korrekt definierten Bereich verschieben, um Monitoring zu verwenden. Weitere Informationen finden Sie unter VM-Bereiche ohne Ausfallzeiten aktualisieren.

Console

Wenn Sie Ihren Cluster ursprünglich ohne Monitoring erstellt haben, haben die Knotenpools des Clusters möglicherweise nicht den erforderlichen Google Cloud-Bereich. Eine Behelfslösung finden Sie im vorstehenden Abschnitt gcloud.

  1. Öffnen Sie in der Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf Bearbeiten .

  3. Wählen Sie im Drop-down-Menü Stackdriver Monitoring die Option Aktiviert aus.

  4. Klicken Sie auf Speichern.

Infrastrukturmesswerte erweitern

Zusätzlich zu den Anwendungsmesswerten können für die benutzerdefinierten Cloud Monitoring-Messwerte auch Messwerte der Clusterinfrastruktur verwendet werden, die nicht in den Systemmesswerten enthalten sind, wie z. B. Laufwerks-E/A eines Containers. Sie können eigene Monitoring-Agents für die Infrastruktur erstellen, um diese Messwerte zu erfassen und mit Push an Cloud Monitoring zu übertragen.

cAdvisor

Mit dem in Kubernetes verwendeten Open Source-Monitoring-Agent cAdvisor können Sie Messwerte erfassen und zusammentragen. Mit prometheus-to-sd können diese Messwerte an Cloud Monitoring übertragen werden.

Führen Sie die folgenden Schritte aus, um cAdvisor in Ihrem Cluster auszuführen:

  1. Klonen Sie cAdvisor:

    git clone https://github.com/google/cadvisor.git
        cd cadvisor
        
  2. Folgen Sie der Anleitung unter cAdvisor Kubernetes Daemonset, um kustomize zu installieren. Wenn Sie Cloud Shell verwenden, führen Sie den folgenden Befehl aus:

    go get github.com/kubernetes-sigs/kustomize
        
  3. Erstellen Sie den cAdvisor-Namespace und das DaemonSet mit dem Beispiel. Dabei werden alle Containermesswerte exportiert:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
        

    Sie sollten jetzt Prometheus-Messwerte in Cloud Monitoring unter der Ressource gke_container sehen.

  4. Folgen Sie der Anleitung unter cAdvisor Kubernetes Daemonset, um Änderungen an dem bereitgestellten Beispiel vorzunehmen, die Ihren Anforderungen entsprechen. Übernehmen Sie Ihre Änderungen mit dem folgenden Befehl:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
        

Messwerte ansehen

Sie können Messwerte in der Google Cloud Console ansehen.

Clusterübersicht

Monitoring bietet ein Übersichtsmenü für GKE. In diesem Menü werden nützliche Informationen zu Clustern in hilfreichen Dashboards angezeigt.

So rufen Sie das Übersichtsmenü auf:

  1. Wechseln Sie in der Cloud Console zu Monitoring:

    Zu Monitoring

  2. Bewegen Sie den Mauszeiger auf Ressourcen und wählen Sie Kubernetes Engine aus.

  3. Wählen Sie Ihren Cluster aus.

Das Übersichtsmenü enthält die folgenden Standard-Dashboards:

  • Incidents (Vorfälle): Verstöße gegen Benachrichtigungsrichtlinien.
  • Ereignisse: Chronologische Liste von Anomalien, Vorfällen, Lebenszyklen, Tags, IAM-Richtlinien, Deployments, Hinweisen, Aktualisierungen des Cloud-Anbieters und Aktualisierungen der Nutzerverwaltung in den Cloud-Konten.
  • CPU-Auslastung: Zeigt die prozentuale CPU-Auslastung pro Cluster an.
  • Laufwerks-E/A: Zeigt die Ein-/Ausgaberaten der Laufwerke pro Cluster in KB/s an.
  • Netzwerk-Traffic: Zeigt den Netzwerk-Traffic pro Cluster in KB/s an.
  • Pods: Liste der Pods und Knoten (VM-Instanzen in Compute Engine) in allen Namespaces. Durch die Auswahl eines Pods oder Knotens wird die Übersicht der jeweiligen Ressource geöffnet.

Weitere Informationen zum Ansehen von Messwerten finden Sie in der Monitoring-Dokumentation und auf der Seite Monitoring-Filter.

Dashboards

Sie können benutzerdefinierte Dashboards für GKE-Knoten und -Container erstellen.

So erstellen Sie ein Dashboard:

  1. Wechseln Sie in der Cloud Console zu Monitoring:

    Zu Monitoring

  2. Bewegen Sie den Mauszeiger auf Dashboards und wählen Sie Dashboard erstellen aus.

  3. Zum Erstellen eines neuen Dashboards klicken Sie auf Add Chart (Diagramm hinzufügen).

  4. Geben Sie im Feld Titel einen Namen für das Dashboard ein.

  5. Suchen Sie im Feld Ressourcentyp und Messwert finden nach instance und/oder container und wählen Sie den gewünschten Messwert aus.

  6. Geben Sie im Feld Messwerttyp den gewünschten Messwert ein oder wählen Sie diesen über das AutoFill-Menü aus.

  7. Optional können Sie die Option Filter verwenden, um nach einem bestimmten Wert zu suchen, z. B. Anwendung, Name oder Version.

  8. Konfigurieren Sie das Dashboard nach Bedarf weiter. Klicken Sie abschließend auf Speichern, um das Dashboard zu erstellen.

Metrics Explorer

Mit Metrics Explorer können Sie einen spezifischen Messwert zu Clustern auswählen und verschiedene Zusammenführungen durchführen.

Den Messwert-Explorer verwenden Sie so:

  1. Wechseln Sie in der Cloud Console zu Monitoring:

    Zu Monitoring

  2. Bewegen Sie den Mauszeiger auf Ressourcen und wählen Sie Metrics Explorer aus.

  3. Geben Sie im Suchmenü Ressourcentyp und Messwert finden als Ressourcentyp gke_container ein.

  4. Wählen Sie unter Messwert die gewünschten Messwerte aus.

  5. Wahlweise können Sie das Menü Filter verwenden, um nach Ressource zu filtern.

  6. Mit den Optionen unter Zusammenfassung können Sie Daten zusammenfassen.

Best Practices

  • Benachrichtigungen: Sie können Benachrichtigungsrichtlinien festlegen, um über ungewöhnliche Ereignisse im Cluster informiert zu werden.

Monitoring deaktivieren

gcloud

Führen Sie den folgenden Befehl aus, um die Monitoring-Funktion für einen vorhandenen Cluster zu deaktivieren. Dabei steht [CLUSTER_NAME] für den Namen des Clusters.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

Wenn Sie Kubernetes Engine Monitoring in Ihrem Cluster ausführen, müssen Sie sowohl Monitoring als auch Logging deaktivieren. Dazu setzen Sie mit gcloud beta die folgenden Flags in dem Cluster:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. Öffnen Sie in der Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf Bearbeiten .

  3. Wählen Sie im Drop-down-Menü Stackdriver Monitoring die Option Deaktiviert aus.

  4. Klicken Sie auf Speichern.

Weitere Informationen