昇腾社区首页
中文
注册

日志出现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文件路径。