日志出现connecting to container runtime failed
问题描述
通过调用MindCluster NPU Exporter的Metrics接口(http://ip:port/metrics),没有获取到NPU容器的相关信息。查看组件的日志,日志中有如下内容。
failed to init devices parser: connecting to container runtime failed: context deadline exceeded
原因分析
MindCluster NPU Exporter启动参数“-containerd”和“-endpoint”默认配置的socket文件路径不正确,该文件在不同操作系统下可能位置可能不同。
解决措施
- MindCluster NPU Exporter的启动参数为“-containerMode=docker”;表示K8s使用Docker作为容器运行时,需要根据Docker作为容器运行时来配置“-containerd”和“-endpoint”参数。可参考表1确认socket的位置,修改yaml挂载路径和MindCluster NPU Exporter启动参数后,再重启服务。
- MindCluster 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文件路径。
父主题: 故障处理