Logging und Monitoring

GKE On-Prem bietet mehrere Optionen für das Cluster-Logging und -Monitoring, darunter cloudbasierte verwaltete Dienste, Open-Source-Tools und validierte Kompatibilität mit kommerziellen Lösungen von Drittanbietern. Auf dieser Seite werden diese Optionen erläutert und einige grundlegende Anleitungen zur Auswahl der richtigen Lösung für Ihre Umgebung gegeben.

Optionen für GKE On-Prem

Für Ihre GKE On-Prem-Cluster stehen mehrere Logging- und Monitoring-Optionen zur Verfügung:

  • Die Tools Cloud Logging und Cloud Monitoring, die von In-Cluster-Agents aktiviert werden, die mit GKE On-Prem bereitgestellt werden.
  • Die Open-Source-Monitoring-Produkte Prometheus und Grafana, die standardmäßig deaktiviert sind.
  • Validierte Konfigurationen mit Lösungen von Drittanbietern.

Cloud Logging und Cloud Monitoring

Die Operations-Suite von Google Cloud ist die integrierte Beobachtbarkeitslösung für Google Cloud. Sie bietet eine vollständig verwaltete Logging-Lösung, Messwerterfassung, Monitoring, Dashboards und Benachrichtigungen. Cloud Monitoring überwacht GKE On-Prem-Cluster ähnlich wie cloudbasierte GKE-Cluster.

Die Agents können auf zwei verschiedenen Logging- und Monitoring-Ebenen konfiguriert werden:

  • Nur Systemkomponenten (Standard).
  • Logging und Monitoring werden deaktiviert. Informieren Sie sich vor der Deaktivierung auf der Supportseite, wie diese Tools für Supportzwecke genutzt werden.

Logging und Monitoring sind die ideale Lösung für Kunden, die eine einzige, einfach zu konfigurierende und leistungsstarke cloudbasierte Beobachtbarkeitslösung benötigen. Wir empfehlen die Verwendung von Logging und Monitoring, wenn Sie Arbeitslasten nur in GKE On-Prem oder Arbeitslasten in GKE und GKE On-Prem ausführen. Für Anwendungen mit Komponenten, die in GKE On-Prem und in herkömmlichen lokalen Infrastrukturen ausgeführt werden, sind andere Lösungen für eine End-to-End-Ansicht dieser Anwendungen zu empfehlen.

Prometheus und Grafana

Prometheus und Grafana sind zwei beliebte Open-Source-Monitoring-Produkte:

  • Prometheus erfasst Anwendungs- und Systemmesswerte.

  • Alertmanager steuert das Senden von Warnungen mit verschiedenen Benachrichtigungsverfahren.

  • Grafana ist ein Dashboard-Tool.

Prometheus und Grafana können auf jedem Administrator- und Nutzercluster aktiviert werden. Die beiden Produkte sind für Anwendungsteams zu empfehlen, die bereits Erfahrung damit haben, oder für Betriebsteams, die Anwendungsmesswerte im Cluster aufbewahren möchten und Probleme beheben müssen, wenn die Netzwerkverbindung unterbrochen wird.

Drittanbieterlösungen

Google hat in Zusammenarbeit mit mehreren Logging- und Monitoring-Drittanbietern dafür gesorgt, dass ihre Produkte mit GKE On-Prem kompatibel sind. Dazu gehören Datadog, Elastic und Splunk. Weitere validierte Drittanbieter werden in Zukunft hinzugefügt.

Die folgenden Lösungsleitfäden stehen für die Verwendung von Drittanbieterlösungen mit GKE On-Prem zur Verfügung:

Funktionsweise von Logging und Monitoring für GKE On-Prem

Cloud Logging und Cloud Monitoring werden in jedem Cluster installiert und aktiviert, wenn Sie einen neuen Administrator- oder Nutzercluster erstellen.

Die Stackdriver-Agents enthalten mehrere Komponenten für jeden Cluster:

  • Stackdriver-Operator (stackdriver-operator-*). Verwaltet den Lebenszyklus aller anderen auf dem Cluster bereitgestellten Stackdriver-Agents.

  • Benutzerdefinierte Stackdriver-Ressource. Eine Ressource, die automatisch im Rahmen des GKE On-Prem-Installationsvorgangs erstellt wird. Nutzer können die benutzerdefinierte Ressource jederzeit ändern, um Werte wie Projekt-ID, Clustername und Clusterstandort zu aktualisieren.

  • Stackdriver Log Aggregator (stackdriver-log-aggregator-*). Ein Fluentd StatefulSet, das Logs an die Cloud Logging API sendet. Wenn Logs nicht gesendet werden können, puffert Log Aggregator die Logeinträge im Umfang von bis zu 200 GB und versucht, sie 24 Stunden lang nochmals zu senden. Wenn der Puffer voll ist oder Log Aggregator die Logging API länger als 24 Stunden nicht erreichen kann, werden Logs gelöscht.

  • Stackdriver Log Forwarder (stackdriver-log-forwarder-*). Ein Fluentbit DaemonSet, das Logs von jeder Maschine an Stackdriver Log Aggregator weiterleitet.

  • Stackdriver Metrics Collector (stackdriver-prometheus-k8s-). Ein Prometheus und Stackdriver Prometheus Sidecar StatefulSet, das Prometheus-Messwerte an die Cloud Logging API sendet.

  • Stackdriver Metadata Collector (stackdriver-metadata-agent-). Ein Modul, das Metadaten für Kubernetes-Ressourcen wie Pods, Deployments, Knoten usw. an die Stackdriver Resource Metadata API sendet. Anhand dieser Daten können Sie Messwertabfragen anreichern und Abfragen nach Deployment-Name, Knotenname oder auch Kubernetes-Dienstname ausführen.

Mit dem folgenden Befehl rufen Sie alle von Stackdriver installierten Agents auf:

  kubectl -n kube-system get pods | grep stackdriver

Die Ausgabe dieses Befehls sieht wie folgt aus:

stackdriver-log-aggregator-0                  1/1     Running   0   4h31m
stackdriver-log-aggregator-1                  1/1     Running   0   4h28m
stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m
stackdriver-prometheus-k8s-0                  2/2     Running   0   4h31m

Stackdriver-Agents für GKE On-Prem konfigurieren

Die mit GKE On-Prem installierten Stackdriver-Agents erfassen Daten zu Systemkomponenten gemäß Ihren Einstellungen und Ihrer Konfiguration in einem der im Folgenden aufgeführten Modi. Damit können Sie Probleme in Ihren GKE On-Prem-Clustern erfassen und beheben.

Nur Systemkomponenten (Standardmodus)

Bei der Installation werden Stackdriver-Agents standardmäßig so konfiguriert, dass sie Logs und Messwerte erfassen, einschließlich Leistungsdetails (z. B. CPU- und Arbeitsspeicherauslastung) und vergleichbarer Metadaten für von Google bereitgestellte Systemkomponenten. Dazu gehören alle Arbeitslasten im Administratorcluster und in Nutzerclustern Arbeitslasten in den Namespaces kube-system, gke-system, gke-connect, istio-system und config-management-system.

Stackdriver deaktiviert

Stackdriver-Agents können vollständig deaktiviert werden. Dazu löschen Sie die benutzerdefinierte Stackdriver-Ressource. Bevor Sie Stackdriver deaktivieren, sollten Sie sich auf der Supportseite informieren, wie sich dies auf die SLAs des Google Cloud-Supports auswirkt.

Zum Deaktivieren von Stackdriver für GKE On-Prem geben Sie folgenden Befehl ein:

kubectl -n kube-system delete stackdrivers stackdriver

Stackdriver-Agents erfassen lokal gespeicherte Daten entsprechend Ihrer Speicher- und Aufbewahrungskonfiguration. Die Daten werden in das bei der Installation angegebene Google Cloud-Projekt repliziert. Dazu wird ein Dienstkonto verwendet, das berechtigt ist, Daten in das Projekt zu schreiben. Stackdriver-Agents können jederzeit wie oben beschrieben deaktiviert werden. Von Stackdriver-Agents erfasste Daten lassen sich wie alle anderen Messwert- und Logdaten verwalten und löschen, wie in der Cloud Monitoring-Dokumentation erläutert.

Konfigurationsanforderungen für Logging und Monitoring

Für das Aktivieren von Cloud Logging und Cloud Monitoring für GKE On-Prem gelten verschiedene Konfigurationsanforderungen. Die entsprechenden Schritte sind in der Übersicht über die GKE On-Prem-Installation und in der folgenden Liste aufgeführt:

  1. Im Cloud-Projekt muss ein Cloud Monitoring-Arbeitsbereich erstellt werden. Klicken Sie dazu auf Monitoring in der Cloud Console und folgen Sie dem Workflow.
  2. Sie müssen die folgenden Stackdriver APIs aktivieren:

  3. Sie müssen dem Dienstkonto, das von den Stackdriver-Agents verwendet wird, die folgenden IAM-Rollen zuweisen:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer

Preise

Anthos bietet ein zusätzliches kostenloses Cloud Logging-Kontingent über das standardmäßige kostenlose Cloud Logging-Kontingent hinaus.

Weitere Informationen zu Gutschriften für Cloud Logging-Messwerte erhalten Sie vom Vertrieb.

Funktionsweise von Prometheus und Grafana für GKE On-Prem

Jeder GKE On-Prem-Cluster wird standardmäßig mit deaktivierten Modulen Prometheus und Grafana erstellt. Informationen zum Aktivieren finden Sie im Installationshandbuch.

Der Prometheus-Server wird in einer Hochverfügbarkeits-Konfiguration mit zwei Replikaten eingerichtet, die auf zwei separaten Knoten ausgeführt werden. Die Ressourcenanforderungen werden an Cluster mit bis zu fünf Knoten angepasst, von denen jeder bis zu 30 Pods verarbeiten kann, die benutzerdefinierte Messwerte bereitstellen. Prometheus enthält ein dediziertes PersistentVolume mit vorab zugewiesenem Speicherplatz, damit Daten für einen Zeitraum von vier Tagen aufbewahrt werden können, sowie einen zusätzlichen Sicherheitspuffer.

Die Administratorsteuerungsebene und jeder Nutzercluster haben einen dedizierten Monitoring-Stack, den Sie unabhängig voneinander konfigurieren können. Jeder Administrator- und Nutzercluster umfasst einen Monitoring-Stack, der eine Reihe von Features bietet: Prometheus-Server für Monitoring, Grafana für Beobachtbarkeit und Prometheus Alertmanager für Benachrichtigungen.

Alle Monitoring-Endpunkte, alle übertragenen Messwertdaten und alle Monitoring-APIs werden über mTLS- und RBAC-Regeln mit Istio-Komponenten gesichert. Der Zugriff auf Monitoring-Daten ist Clusteradministratoren vorbehalten.

Von Prometheus erfasste Messwerte

Prometheus erfasst die folgenden Messwerte und Metadaten aus der Administratorsteuerungsebene und aus Nutzerclustern:

  • Ressourcennutzung, z. B. CPU-Auslastung auf Pods und Knoten
  • Messwerte der Kubernetes-Steuerungsebene
  • Messwerte aus Add-ons und Kubernetes-Systemkomponenten, die auf Knoten ausgeführt werden, z. B. kubelet
  • Clusterstatus, z. B. Status von Pods in einem Deployment
  • Anwendungsmesswerte
  • Computermesswerte zu Netzwerk, Entropie und Inodes

Monitoring mehrerer Cluster

Die im Administratorcluster installierte Prometheus- und Grafana-Instanz wurde speziell konfiguriert, um Einblicke in die gesamte GKE On-Prem-Instanz einschließlich des Administratorclusters und der einzelnen Nutzercluster zu ermöglichen. Dadurch haben Sie folgende Möglichkeiten:

  • Sie können ein Grafana-Dashboard verwenden, um auf Messwerte aus allen Nutzer- und Administratorclustern zuzugreifen.
  • Sie können Messwerte einzelner Nutzercluster in Grafana-Dashboards darstellen. Die Messwerte stehen für direkte Abfragen in vollständiger Auflösung zur Verfügung.
  • Sie können auf die Knoten- und Arbeitslastmesswerte von Nutzerclustern für aggregierte Abfragen, Dashboards und Benachrichtigungen zugreifen. Arbeitslastmesswerte sind auf Arbeitslasten beschränkt, die im kube-system-Namespace ausgeführt werden.
  • Sie haben die Möglichkeit, Benachrichtigungen für bestimmte Cluster zu konfigurieren.

Weitere Informationen