问题描述
通过调用NPU Exporter的Metrics接口(http://ip:port/metrics),没有获取到NPU容器的相关信息。查看组件的日志,日志中有如下内容。
failed to init devices parser: connecting to container runtime failed: context deadline exceeded
原因分析
NPU Exporter启动参数“-containerd”和“-endpoint”默认配置的socket文件路径不正确,该文件在不同操作系统下的位置可能不同。
解决措施
- NPU Exporter的启动参数为“-containerMode=docker”;表示K8s使用Docker作为容器运行时,需要根据Docker作为容器运行时来配置“-containerd”和“-endpoint”参数。可参考表1确认socket的位置,修改yaml挂载路径和NPU Exporter启动参数后,再重启服务。
- NPU Exporter的启动参数为“-containerMode=containerd”时,操作与“-containerMode=docker”参数一致,同时还需要将yaml中name为“docker-shim”的挂载路径删除。
表1 containerd和endpoint参数配置启动参数
|
容器模式
|
修改默认值
|
-containerd
|
- 若containerMode=docker,默认配置的socket文件路径为/var/run/docker/containerd/docker-containerd.sock;连接失败后,自动尝试连接:unix:///run/containerd/containerd.sock。
- 若containerMode=containerd,默认配置的socket文件路径为/run/containerd/containerd.sock。
|
一般情况下该参数保持默认即可,除非用户自行修改了Containerd的sock文件路径,可通过ps aux | grep "containerd.sock"命令查询。
|
-endpoint
|
- 若containerMode=docker,将连接到dockershim获取容器列表,默认配置的socket文件路径为/var/run/dockershim.sock;
- 若containerMode=containerd,默认配置的socket文件路径为/run/containerd/containerd.sock。
|
一般情况下该参数保持默认即可,除非用户自行修改了dockershim或者Containerd的sock文件路径。
|