昇腾社区首页
中文
注册

日志出现connecting to container runtime failed

问题描述

通过调用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文件路径。