GPU-Messwerte an Cloud Monitoring senden

Wenn Ihr Cluster Knoten mit NVIDIA-GPUs enthält, können Sie die GPU-Auslastung, ‑Leistung und ‑Integrität überwachen, indem Sie den Cluster so konfigurieren, dass er NVIDIA Data Center GPU Manager-Messwerte (DCGM) an Cloud Monitoring sendet. Bei dieser Lösung werden Messwerte aus NVIDIA DCGM mit Google Cloud Managed Service for Prometheus erfasst.

Diese Seite richtet sich an IT-Administratoren und ‑Betreiber, die den Lebenszyklus der zugrunde liegenden technischen Infrastruktur verwalten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Hinweise

Wenn Sie Google Cloud Managed Service for Prometheus zum Erfassen von Messwerten aus DCGM verwenden möchten, muss Ihr Google Distributed Cloud-Deployment die folgenden Anforderungen erfüllen:

PodMonitoring-Ressource konfigurieren

Konfigurieren Sie eine PodMonitoring-Ressource für Google Cloud Managed Service for Prometheus, um die exportierten Messwerte zu erfassen. Wenn Sie aufgrund von restriktiven Sicherheits- oder Organisationsrichtlinien Probleme beim Installieren einer Anwendung oder eines Exporters haben, empfehlen wir Ihnen, die Open Source-Dokumentation für Support zu nutzen.

Zur Aufnahme der vom DCGM-Exporter-Pod (nvidia-dcgm-exporter) ausgegebenen Messwertdaten verwendet Google Cloud Managed Service for Prometheus Ziel-Extraktion. Ziel-Scraping und Messwertaufnahme werden mit benutzerdefinierten Ressourcen von Kubernetes konfiguriert. Der verwaltete Dienst verwendet benutzerdefinierte PodMonitoring.

Eine benutzerdefinierte PodMonitoring-Ressource wendet Ziel-Scraping nur in dem Namespace an, in dem sie bereitgestellt wird. Wenn Sie Ziel-Scraping in mehreren Namespaces anwenden möchten, stellen Sie in jedem Namespace dieselbe benutzerdefinierte PodMonitoring-Ressource bereit.

  1. Erstellen Sie eine Manifestdatei mit der folgenden Konfiguration:

    Im Abschnitt selector des Manifests wird angegeben, dass der DCGM Exporter-Pod, nvidia-dcgm-exporter, für das Monitoring ausgewählt ist. Dieser Pod wird bereitgestellt, wenn Sie den NVIDIA GPU-Operator installieren.

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: dcgm-gmp
    spec:
      selector:
        matchLabels:
          app: nvidia-dcgm-exporter
      endpoints:
      - port: metrics
        interval: 30s
    
  2. Stellen Sie die benutzerdefinierte PodMonitoring-Ressource bereit:

    kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIG
    

    Ersetzen Sie Folgendes:

    • NAMESPACE: der Namespace, in dem Sie die benutzerdefinierte PodMonitoring-Ressource bereitstellen.

    • FILENAME: der Pfad der Manifestdatei für die benutzerdefinierte Ressource „PodMonitoring“.

    • KUBECONFIG: der Pfad der kubeconfig-Datei für den Cluster.

  3. Prüfen Sie mit dem folgenden Befehl, ob die benutzerdefinierte Ressource „PodMonitoring“ im gewünschten Namespace installiert ist:

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    Die Ausgabe sollte in etwa so aussehen:

    NAME       AGE
    dcgm-gmp   3m37s
    

Konfiguration prüfen

Mit dem Metrics Explorer können Sie prüfen, ob der DCGM-Exporter richtig konfiguriert ist. Es kann ein oder zwei Minuten dauern, bis Cloud Monitoring Ihre Messwerte aufgenommen hat.

So prüfen Sie, ob die Messwerte aufgenommen wurden:

  1. Rufen Sie in der Google Cloud Console die Seite  Metrics Explorer auf:

    Zum Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Geben Sie mit der Prometheus-Abfragesprache (PromQL) die Daten an, die im Diagramm dargestellt werden sollen:

    1. Klicken Sie in der Symbolleiste des Bereichs „Query Builder“ auf < > PromQL.

    2. Geben Sie eine Abfrage in den Abfrageeditor ein. Wenn Sie beispielsweise die durchschnittliche Anzahl der Sekunden, die die CPUs in den einzelnen Modi in der letzten Stunde verbracht haben, grafisch darstellen möchten, verwenden Sie die folgende Abfrage:

      DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
      

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: Der Name des Clusters mit Knoten, die GPUs verwenden.

    • NAMESPACE: der Namespace, in dem Sie die benutzerdefinierte PodMonitoring-Ressource bereitgestellt haben.

    Weitere Informationen zur Verwendung von PromQL finden Sie unter PromQL in Cloud Monitoring.