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无数据显示
首先需要确认mx-exporter有没有收集到数据,可用
kubectl logs <mx-exporter-pod_name> -n metax-monitor查看log中有无异常。确认 mx-exporter/deployment/prometheus/config-map.yaml 中mx-exporter的
job_name: "metax-mx-exporter"。浏览器输入 <k8s_master_ip>:<prometheus_service_port>,prometheus_service_port 默认为 30000。 登录Prometheus UI,在搜索框中输入已知指标,如 gpu_usage,点击 Execute 按钮查看exporter中数据是否已经导入Prometheus中,或者点击 Execute 按钮左边的 open metrics explorer 查询已知指标是否存在。
再次确认Grafana指标展示界面中选择的 server 为
<hostname>, device 选择有效值,如0。
9.3. mx-exporter正常运行, exported_pod 标签无内容
通过k8s可以看到有pod正在使用GPU。
查看host上 /var/lib/kubelet/pod-resources 下有无 kubelet.sock 文件。
如果没有看到 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"
修改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。
重新部署mx-exporter,成功后在Prometheus UI使用查询语句
{exported_pod="xxx"}即可查询对应pod相关指标。
9.4. 如果集群使用的是Prometheus-operator,可以通过servicemonitor将mx-exporter注册到Prometheus的抓取列表中
准备如下 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
使用以下文件部署 servicemonitor.yaml。
kubectl apply -f servicemonitor.yaml
可在Prometheus中查询到MetaX GPU指标。