Se o seu cluster tiver nós que usam GPUs NVIDIA, pode monitorizar a utilização, o desempenho e o estado das GPUs configurando o cluster para enviar métricas do NVIDIA Data Center GPU Manager (DCGM) para o Cloud Monitoring. Esta solução usa o serviço gerido do Google Cloud para o Prometheus para recolher métricas do NVIDIA DCGM.
Esta página destina-se a administradores de TI e operadores que gerem o ciclo de vida da infraestrutura tecnológica subjacente. Para saber mais sobre as funções comuns e exemplos de tarefas a que fazemos referência no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud
Antes de começar
Para usar o serviço gerido do Google Cloud para o Prometheus para recolher métricas do DCGM, a sua implementação do Google Distributed Cloud tem de cumprir os seguintes requisitos:
A ferramenta DCGM-Exporter da NVIDIA tem de estar já instalada no cluster. O DCGM-Exporter é instalado quando instala o operador de GPU da NVIDIA. Para ver instruções de instalação do operador de GPU da NVIDIA, consulte o artigo Instale e valide o operador de GPU da NVIDIA.
O serviço gerido do Google Cloud para Prometheus tem de estar ativado. Para ver instruções, consulte o artigo Ative o Google Cloud Managed Service for Prometheus.
Configure um recurso PodMonitoring
Configure um recurso PodMonitoring para o Google Cloud Managed Service for Prometheus para recolher as métricas exportadas. Se estiver com problemas na instalação de uma aplicação ou de um exportador devido a políticas organizacionais ou de segurança restritivas, recomendamos que consulte a documentação de código aberto para receber apoio técnico.
Para carregar os dados de métricas emitidos pelo pod do exportador do DCGM (nvidia-dcgm-exporter
), o Google Cloud Managed Service for Prometheus usa a extração de destinos. A extração de dados e a ingestão de métricas de destino são configuradas através de recursos personalizados do Kubernetes.
O serviço gerido usa recursos personalizados PodMonitoring.
Um recurso personalizado PodMonitoring extrai alvos no espaço de nomes em que está implementado apenas. Para extrair dados de destinos em vários namespaces, implemente o mesmo recurso personalizado PodMonitoring em cada namespace.
Crie um ficheiro de manifesto com a seguinte configuração:
A secção
selector
no manifesto especifica que o pod do exportador DCGM,nvidia-dcgm-exporter
, está selecionado para monitorização. Este pod é implementado quando instala o operador de GPU da NVIDIA.apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: dcgm-gmp spec: selector: matchLabels: app: nvidia-dcgm-exporter endpoints: - port: metrics interval: 30s
Implemente o recurso personalizado PodMonitoring:
kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIG
Substitua o seguinte:
NAMESPACE
: o espaço de nomes no qual está a implementar o recurso personalizado PodMonitoring.FILENAME
: o caminho do ficheiro de manifesto para o recurso personalizado PodMonitoring.KUBECONFIG
: o caminho do ficheiro kubeconfig para o cluster.
Valide se o recurso personalizado PodMonitoring está instalado no espaço de nomes pretendido. Para tal, execute o seguinte comando:
kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
O resultado deve ser semelhante ao seguinte:
NAME AGE dcgm-gmp 3m37s
Valide a configuração
Pode usar o Explorador de métricas para verificar se configurou corretamente o exportador do DCGM. O Cloud Monitoring pode demorar um ou dois minutos a carregar as suas métricas.
Para verificar se as métricas são carregadas, faça o seguinte:
-
Na Google Cloud consola, aceda à página leaderboard Explorador de métricas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
Use a linguagem de consulta do Prometheus (PromQL) para especificar os dados a apresentar no gráfico:
Na barra de ferramentas do painel do criador de consultas, clique em < > PromQL.
Introduza a consulta no editor de consultas. Por exemplo, para criar um gráfico do número médio de segundos que as CPUs passaram em cada modo na última hora, use a seguinte consulta:
DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster com nós que estão a usar GPUs.NAMESPACE
: o espaço de nomes no qual implementou o recurso personalizado PodMonitoring.
Para mais informações sobre a utilização do PromQL, consulte o artigo PromQL no Cloud Monitoring.