GPU-Messwerte an Cloud Monitoring senden

Wenn Ihr Cluster Knoten mit NVIDIA-GPUs hat, können Sie die GPU-Auslastung, -Leistung und -Zustand überwachen, indem Sie den Cluster so konfigurieren, dass NVIDIA Data Center GPU Manager-Messwerte (DCGM) an Cloud Monitoring gesendet werden. Bei dieser Lösung werden mit Google Cloud Managed Service for Prometheus Messwerte aus NVIDIA DCGM 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 unseren Inhalten verweisen, finden Sie unter Häufig verwendete GKE Enterprise-Nutzerrollen und ‑Aufgaben. Google Cloud

Hinweis

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

PodMonitoring-Ressource konfigurieren

Eine PodMonitoring-Ressource für Google Cloud Managed Service for Prometheus konfigurieren, 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) gesendeten Messwertdaten verwendet Google Cloud Managed Service for Prometheus Ziel-Extraktion. Ziel-Extraktion und Messwertaufnahme werden mit benutzerdefinierten Ressourcen von Kubernetes konfiguriert. Der verwaltete Dienst verwendet benutzerdefinierte PodMonitoring-Ressourcen.

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

  1. Erstellen Sie eine Manifestdatei mit der folgenden Konfiguration:

    Im Abschnitt selector im Manifest wird angegeben, dass der DCGM-Export-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: Pfad der kubeconfig-Datei für den Cluster.

  3. Führen Sie den folgenden Befehl aus, um zu prüfen, 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. Verwenden Sie die Prometheus-Abfragesprache (PromQL), um die Daten anzugeben, die im Diagramm angezeigt 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.