如果叢集的節點使用 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 部署作業必須符合下列需求:
叢集必須已安裝 NVIDIA DCGM-Exporter 工具。安裝 NVIDIA GPU 運算子時,系統會一併安裝 DCGM-Exporter。如需 NVIDIA GPU 運算子安裝說明,請參閱「安裝及驗證 NVIDIA GPU 運算子」。
必須啟用 Google Cloud Managed Service for Prometheus。如需操作說明,請參閱「啟用 Google Cloud Managed Service for Prometheus」。
設定 PodMonitoring 資源
為 Google Cloud Managed Service for Prometheus 設定 PodMonitoring 資源,以便收集匯出的指標。如果因安全或機構政策限制而無法安裝應用程式或匯出工具,建議您參閱開放原始碼文件尋求支援。
如要擷取 DCGM Exporter Pod (nvidia-dcgm-exporter
) 發出的指標資料,Google Cloud Managed Service for Prometheus 會使用目標擷取功能。設定抓取目標和擷取指標作業時會使用 Kubernetes 自訂資源。代管服務會使用 PodMonitoring 自訂資源。
PodMonitoring 自訂資源只會擷取部署所在命名空間中的目標。如要擷取多個命名空間中的目標,請在每個命名空間中部署相同的 PodMonitoring 自訂資源。
建立含有下列設定的資訊清單檔案:
資訊清單中的
selector
區段指定選取 DCGM Exporter Pod (nvidia-dcgm-exporter
) 進行監控。安裝 NVIDIA GPU 運算子時,系統會部署這個 Pod。apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: dcgm-gmp spec: selector: matchLabels: app: nvidia-dcgm-exporter endpoints: - port: metrics interval: 30s
部署 PodMonitoring 自訂資源:
kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIG
更改下列內容:
NAMESPACE
:您要部署 PodMonitoring 自訂資源的命名空間。FILENAME
:PodMonitoring 自訂資源的資訊清單檔案路徑。KUBECONFIG
:叢集的 kubeconfig 檔案路徑。
確認 PodMonitoring 自訂資源已安裝在預期命名空間中,請執行下列指令:
kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
輸出內容應如下所示:
NAME AGE dcgm-gmp 3m37s
驗證設定
您可以使用 Metrics Explorer 驗證是否已正確設定 DCGM 匯出工具。Cloud Monitoring 可能需要一到兩分鐘才能擷取指標。
如要確認指標已擷取,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
使用 Prometheus 查詢語言 (PromQL) 指定要在圖表上顯示的資料:
在查詢產生器窗格的工具列中,按一下「< > PromQL」。
在查詢編輯器中輸入查詢。舉例來說,如要繪製過去一小時內 CPU 在每種模式中花費的平均秒數,請使用下列查詢:
DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
更改下列內容:
CLUSTER_NAME
:使用 GPU 的節點所在叢集的名稱。NAMESPACE
:您部署 PodMonitoring 自訂資源的命名空間。
如要進一步瞭解如何使用 PromQL,請參閱「在 Cloud Monitoring 中使用 PromQL」。