Se o cluster tiver nós que usam GPUs NVIDIA, será possível 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 que gerenciam o ciclo de vida da infraestrutura de tecnologia subjacente. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo Google Cloud , consulte Funções e tarefas de usuário comuns do GKE Enterprise.
Antes de começar
Para usar o Google Cloud Managed Service para Prometheus e coletar métricas do DCGM, sua implantação da Google Distributed Cloud precisa atender aos seguintes requisitos:
A ferramenta DCGM-Exporter da NVIDIA 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.
O Google Cloud Managed Service para Prometheus precisa estar ativado. Para instruções, consulte Ativar o Google Cloud Managed Service para Prometheus.
Configurar um recurso do PodMonitoring
Configure um recurso PodMonitoring para o Google Cloud Managed Service para Prometheus a fim de coletar 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 captura de destino. A raspagem de destino e a ingestão de métricas são configuradas usando
recursos personalizados do Kubernetes.
O serviço gerenciado usa recursos personalizados do PodMonitoring.
Um recurso personalizado do PodMonitoring raspa os destinos no namespace em que ele é implantado. Para extrair objetivos 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
selector
no manifesto especifica que o pod do exportador do DCGM,nvidia-dcgm-exporter
, é 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: 30s
Implante o recurso personalizado do PodMonitoring:
kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIG
Substitua:
NAMESPACE
: o namespace em que você está implantando o recurso personalizado PodMonitoring.FILENAME
: o caminho do arquivo de manifesto para o recurso personalizado PodMonitoring.KUBECONFIG
: o caminho do arquivo kubeconfig para o cluster.
Para verificar se o recurso personalizado PodMonitoring está instalado no namespace pretendido, execute o seguinte comando:
kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
A 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 Console do Google Cloud, acesse a página do leaderboard Metrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
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 PodMonitoring.
Para mais informações sobre como usar o PromQL, consulte PromQL no Cloud Monitoring.