Cloud Monitoring으로 GPU 측정항목 전송

클러스터에 NVIDIA GPU를 사용하는 노드가 있는 경우 클러스터가 NVIDIA Data Center GPU Manager (DCGM) 측정항목을 Cloud Monitoring으로 전송하도록 구성하여 GPU 사용률, 성능, 상태를 모니터링할 수 있습니다. 이 솔루션은 Google Cloud Managed Service for Prometheus를 사용하여 NVIDIA DCGM에서 측정항목을 수집합니다.

이 페이지는 기본 기술 인프라의 수명 주기를 관리하는 IT 관리자 및 운영자를 위해 작성되었습니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할 및 예시 작업에 대해 자세히 알아보려면 일반 GKE Enterprise 사용자 역할 및 작업을 참고하세요.

시작하기 전에

Google Cloud Managed Service for Prometheus를 사용하여 DCGM에서 측정항목을 수집하려면 Google Distributed Cloud 배포가 다음 요구사항을 충족해야 합니다.

PodMonitoring 리소스 구성

내보낸 측정항목을 수집하도록 Google Cloud Managed Service for Prometheus의 PodMonitoring 리소스를 구성합니다. 제한적인 보안 또는 조직 정책으로 인해 애플리케이션 또는 내보내기 도구를 설치하는 데 문제가 있으면 지원을 위한 오픈소스 문서를 참조하는 것이 좋습니다.

DCGM Exporter Pod(nvidia-dcgm-exporter)에서 내보내는 측정항목 데이터를 수집하려면 Google Cloud Managed Service for Prometheus는 대상 스크래핑을 사용합니다. 대상 스크래핑 및 측정항목 수집은 Kubernetes 커스텀 리소스를 사용하여 구성됩니다. 관리형 서비스는 PodMonitoring 커스텀 리소스를 사용합니다.

PodMonitoring 커스텀 리소스는 배포된 네임스페이스에서만 대상을 스크래핑합니다. 여러 네임스페이스에서 대상을 스크래핑하려면 각 네임스페이스에 동일한 PodMonitoring 커스텀 리소스를 배포합니다.

  1. 다음 구성으로 매니페스트 파일을 만듭니다.

    매니페스트의 selector 섹션은 DCGM 내보내기 도구 포드 nvidia-dcgm-exporter가 모니터링을 위해 선택되었음을 지정합니다. 이 포드는 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. PodMonitoring 커스텀 리소스를 배포합니다.

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

    다음을 바꿉니다.

    • NAMESPACE: PodMonitoring 커스텀 리소스를 배포할 네임스페이스입니다.

    • FILENAME: PodMonitoring 커스텀 리소스의 매니페스트 파일 경로입니다.

    • KUBECONFIG: 클러스터의 kubeconfig 파일 경로입니다.

  3. PodMonitoring 커스텀 리소스가 의도한 네임스페이스에 설치되었는지 확인하려면 다음 명령어를 실행합니다.

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    출력은 다음과 비슷하게 표시됩니다.

    NAME       AGE
    dcgm-gmp   3m37s
    

구성 확인

측정항목 탐색기를 사용하여 DCGM 내보내기 도구를 올바르게 구성했는지 확인할 수 있습니다. Cloud Monitoring에서 측정항목을 수집하는 데 1~2분 정도 걸릴 수 있습니다.

측정항목이 수집되었는지 확인하려면 다음을 수행하세요.

  1. Google Cloud 콘솔에서  측정항목 탐색기 페이지로 이동합니다.

    측정항목 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. Prometheus Query Language(PromQL)를 사용하여 차트에 표시할 데이터를 지정합니다.

    1. 쿼리 빌더 창의 툴바에서 < > PromQL을 클릭합니다.

    2. 쿼리 편집기에 쿼리를 입력합니다. 예를 들어 이전 1시간 동안 각 모드에서 CPU가 소비한 평균 시간(초)을 차트로 표시하려면 다음 쿼리를 사용합니다.

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

    다음을 바꿉니다.

    • CLUSTER_NAME: GPU를 사용하는 노드가 있는 클러스터의 이름입니다.

    • NAMESPACE: PodMonitoring 커스텀 리소스를 배포한 네임스페이스입니다.

    PromQL 사용에 관한 자세한 내용은 Cloud Monitoring의 PromQL을 참고하세요.