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 delle 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 Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti GKE.

Prima di iniziare

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

Configurare 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 criteri di sicurezza o organizzativi restrittivi, 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 PodMonitoring risorse personalizzate.

Una risorsa personalizzata PodMonitoring esegue lo scraping dei target solo nello spazio dei nomi in cui è stata eseguita la sua distribuzione. 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 eseguito il deployment quando installi NVIDIA GPU Operator.

    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 seguente comando:

    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 importare le metriche.

Per verificare che le metriche siano state importate:

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

    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 creazione delle query, fai clic su < > PromQL.

    2. Inserisci la query nell'editor di query. Ad esempio, per rappresentare graficamente il 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 ulteriori informazioni sull'utilizzo di PromQL, consulta PromQL in Cloud Monitoring.