9. 常见问题

9.1. pod不是Running状态

  • 可用 kubctl describe pod <pod_name> -n metax-monitor 查看pod详细信息。

  • 可用 kubectl logs <pod_name> -n metax-monitor 查看container log信息。

9.2. 导入配置文件后Grafana无数据显示

  1. 首先需要确认mx-exporter有没有收集到数据,可用 kubectl logs <mx-exporter-pod_name> -n metax-monitor 查看log中有无异常。

  2. 确认 mx-exporter/deployment/prometheus/config-map.yaml 中mx-exporter的 job_name: "metax-mx-exporter"

  3. 浏览器输入 <k8s_master_ip>:<prometheus_service_port>prometheus_service_port 默认为 30000。 登录Prometheus UI,在搜索框中输入已知指标,如 gpu_usage,点击 Execute 按钮查看exporter中数据是否已经导入Prometheus中,或者点击 Execute 按钮左边的 open metrics explorer 查询已知指标是否存在。

  4. 再次确认Grafana指标展示界面中选择的 server<hostname>device 选择有效值,如 0

9.3. mx-exporter正常运行, exported_pod 标签无内容

  1. 通过k8s可以看到有pod正在使用GPU。

  2. 查看host上 /var/lib/kubelet/pod-resources 下有无 kubelet.sock 文件。

  3. 如果没有看到 kubelet.sock 文件,需使用 journalctl -u kubelet | grep -i podresources 查看Kubelet日志找到 kubelet.sock 所在目录,日志如:

"Starting to serve the podresources API" endpoint="unix:/workspace/var/lib/kubelet/pod-resources/kubelet.sock"
  1. 修改mx-exporter部署文件

    • 若为yaml方式部署,可修改 mx-exporter/deployment/mx-exporter/mx-exporter-daemonset.yaml

      volumes:
        - name: "pod-gpu-resources"
          hostPath:
            path: "/workspace/var/lib/kubelet/pod-resources"
      
    • 若为helmchart方式部署,可在部署时增加 --set kubeletPath=/workspace/var/lib/kubelet/pod-resources

  2. 重新部署mx-exporter,成功后在Prometheus UI使用查询语句 {exported_pod="xxx"} 即可查询对应pod相关指标。

9.4. 如果集群使用的是Prometheus-operator,可以通过servicemonitor将mx-exporter注册到Prometheus的抓取列表中

  1. 准备如下 servicemonitor.yaml 文件,其中namspace为mx-exporter所在namespace,默认值为 metax-monitor

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
     name: metax-monitor
    spec:
     endpoints:
      - honorLabels: true
       path: /metrics
       port: metrics
       scheme: http
     jobLabel: mx-exporter
    selector:
     matchLabels:
      app.kubernetes.io/instance: mx-exporter
      app.kubernetes.io/name: mx-exporter
    
  2. 使用以下文件部署 servicemonitor.yaml

    kubectl apply -f servicemonitor.yaml
    
  3. 可在Prometheus中查询到MetaX GPU指标。