Se o cluster tiver nós que usam NVIDIA GPUs, você poderá monitorar a utilização, o desempenho e a integridade da GPU configurando o cluster para enviar métricas do NVIDIA Data Center GPU Manager (DCGM) ao Cloud Monitoring. Essa solução usa o Google Cloud Managed Service para Prometheus para coletar métricas do NVIDIA DCGM.
Esta página é destinada a administradores de TI e operadores responsáveis por gerenciar o ciclo de vida de infraestruturas de tecnologia. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no Google Cloud conteúdo, consulte Funções e tarefas comuns do GKE.
Antes de começar
Para usar o Google Cloud Managed Service para Prometheus para coletar métricas do DCGM, a implantação do Google Distributed Cloud precisa atender aos seguintes requisitos:
A ferramenta NVIDIA DCGM-Exporter já precisa estar instalada no cluster. O DCGM-Exporter é instalado quando você instala o Operador de GPU NVIDIA. Para instruções de instalação do Operador de GPU NVIDIA, consulte Instalar e verificar o Operador de GPU NVIDIA.
Google Cloud Managed Service para Prometheus precisa estar ativado. Para instruções, consulte Ativar o Serviço Gerenciado do Google Cloud para Prometheus.
Configurar um recurso do PodMonitoring
Configure um recurso do PodMonitoring para que Google Cloud Managed Service para Prometheus colete as métricas exportadas. Se você estiver com problemas para instalar um aplicativo ou exportador devido a políticas restritivas de segurança ou da organização, recomendamos consultar a documentação de código aberto para receber suporte.
Para ingerir os dados de métrica emitidos pelo pod do exportador do DCGM (nvidia-dcgm-exporter), o Google Cloud Managed Service para Prometheus usa a extração de destino. A extração de destino e a ingestão de métricas são configuradas usando
recursos personalizados
do Kubernetes.
O serviço gerenciado usa
PodMonitoring
recursos personalizados.
Um recurso personalizado do PodMonitoring extrai destinos apenas no namespace em que ele é implantado. Para extrair destinos em vários namespaces, implante o mesmo recurso personalizado do PodMonitoring em cada namespace.
Crie um arquivo de manifesto com a seguinte configuração:
A seção
selectorno manifesto especifica que o pod do exportador do DCGM,nvidia-dcgm-exporter, está selecionado para monitoramento. Esse pod é implantado quando você instala o Operador de GPU NVIDIA.apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: dcgm-gmp spec: selector: matchLabels: app: nvidia-dcgm-exporter endpoints: - port: metrics interval: 30sImplante o recurso personalizado do PodMonitoring:
kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIGSubstitua:
NAMESPACE: o namespace em que você está implantando o recurso personalizado do PodMonitoring.FILENAME: o caminho do arquivo de manifesto para o recurso personalizado do PodMonitoring.KUBECONFIG: o caminho do arquivo kubeconfig do cluster.
Para verificar se o recurso personalizado do PodMonitoring está instalado no namespace pretendido, execute o seguinte comando:
kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIGA saída será parecida com esta:
NAME AGE dcgm-gmp 3m37s
Verificar a configuração
Use o Metrics Explorer para verificar se você configurou corretamente o exportador do DCGM. Pode levar um ou dois minutos para que o Cloud Monitoring ingira as métricas.
Para verificar se as métricas foram transferidas, faça o seguinte:
-
No Google Cloud console, acesse a leaderboard páginaMetrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
Use a linguagem de consulta do Prometheus (PromQL) para especificar os dados que serão exibidos no gráfico:
Na barra de ferramentas do painel do criador de consultas, clique em < > PromQL.
Insira sua consulta no editor de consultas. Por exemplo, para gerar um gráfico sobre o número médio de segundos que as CPUs gastaram em cada modo na última hora, use a seguinte consulta:
DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
Substitua:
CLUSTER_NAME: o nome do cluster com nós que estão usando GPUs.NAMESPACE: o namespace em que você implantou o recurso personalizado do PodMonitoring.
Para mais informações sobre como usar PromQL, consulte PromQL no Cloud Monitoring.