Inviare le metriche della GPU a Cloud Monitoring

Se il tuo cluster ha nodi che utilizzano GPU NVIDIA, puoi monitorare l'utilizzo, le prestazioni e lo stato della GPU configurando il cluster in modo che invii le metriche di NVIDIA Data Center GPU Manager (DCGM) a Cloud Monitoring. Questa soluzione utilizza Google Cloud Managed Service per Prometheus per raccogliere le metriche da NVIDIA DCGM.

Questa pagina è rivolta agli amministratori IT e agli operatori che gestiscono il ciclo di vita dell'infrastruttura tecnologica sottostante. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni degli utenti GKE.

Prima di iniziare

Per utilizzare Google Cloud Managed Service per Prometheus per raccogliere metriche da DCGM, il tuo deployment di Google Distributed Cloud deve soddisfare i seguenti requisiti:

Configura una risorsa PodMonitoring

Configura una risorsa PodMonitoring per Google Cloud Managed Service per Prometheus in modo da raccogliere le metriche esportate. Se hai difficoltà a installare un'applicazione o un esportatore a causa di norme organizzative o di sicurezza restrittive, ti consigliamo di consultare la documentazione open source per ricevere assistenza.

Per importare i dati delle metriche emessi dal pod DCGM Exporter (nvidia-dcgm-exporter), Google Cloud Managed Service per Prometheus utilizza lo scraping dei target. Lo scraping dei target e l'importazione delle metriche vengono configurati utilizzando le risorse personalizzate di Kubernetes. Il servizio gestito utilizza risorse personalizzate PodMonitoring.

Una risorsa personalizzata PodMonitoring esegue lo scraping dei target solo nello spazio dei nomi in cui è stato eseguito il deployment. Per eseguire lo scraping dei target in più spazi dei nomi, esegui il deployment della stessa risorsa personalizzata PodMonitoring in ogni spazio dei nomi.

  1. Crea un file manifest con la seguente configurazione:

    La sezione selector nel manifest specifica che il pod DCGM Exporter, nvidia-dcgm-exporter, è selezionato per il monitoraggio. Questo pod viene deployment quando installi l'operatore GPU NVIDIA.

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: dcgm-gmp
    spec:
      selector:
        matchLabels:
          app: nvidia-dcgm-exporter
      endpoints:
      - port: metrics
        interval: 30s
    
  2. Esegui il deployment della risorsa personalizzata PodMonitoring:

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

    Sostituisci quanto segue:

    • NAMESPACE: lo spazio dei nomi in cui stai eseguendo il deployment della risorsa personalizzata PodMonitoring.

    • FILENAME: il percorso del file manifest per la risorsa personalizzata PodMonitoring.

    • KUBECONFIG: il percorso del file kubeconfig per il cluster.

  3. Verifica che la risorsa personalizzata PodMonitoring sia installata nello spazio dei nomi previsto eseguendo il comando seguente:

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    L'output dovrebbe essere simile al seguente:

    NAME       AGE
    dcgm-gmp   3m37s
    

Verificare la configurazione

Puoi utilizzare Metrics Explorer per verificare di aver configurato correttamente l'esportatore DCGM. Cloud Monitoring potrebbe richiedere uno o due minuti per inserire le metriche.

Per verificare che le metriche vengano importate, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina  Esplora metriche:

    Vai a Esplora metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Utilizza Prometheus Query Language (PromQL) per specificare i dati da visualizzare nel grafico:

    1. Nella barra degli strumenti del riquadro di Query Builder, fai clic su < > PromQL.

    2. Inserisci la query nell'editor di query. Ad esempio, per tracciare un grafico del numero medio di secondi trascorsi dalle CPU in ogni modalità nell'ultima ora, utilizza la seguente query:

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

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster con i nodi che utilizzano le GPU.

    • NAMESPACE: lo spazio dei nomi in cui hai eseguito il deployment della risorsa personalizzata PodMonitoring.

    Per saperne di più sull'utilizzo di PromQL, consulta PromQL in Cloud Monitoring.