Fork me on GitHub

记一次安装nvidia-container-runtme后,作为containerd默认的runtime,k8s节点挂掉的问题。

背景

在安装k8s 1.33后,节点总是挂掉,反复试了很多次,很崩溃,直到通过控制变量排查到了是container-runtime的问题

现象

只要用了runc作为runtime就没问题,而用了nvida runtime就有问题,问题现象是节点的pod都启动不了,kubelet也没有明显的错误。

containerd的设置方法

version = 2
[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    [plugins."io.containerd.grpc.v1.cri".containerd]
      default_runtime_name = "nvidia"

      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
          privileged_without_host_devices = false
          runtime_engine = ""
          runtime_root = ""
          runtime_type = "io.containerd.runc.v2"
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
            BinaryName = "/usr/bin/nvidia-container-runtime"

解决方案·

这个命令会编辑contaierd配置文件,所以我怀疑是哪里没设置好

sudo nvidia-ctk runtime configure --runtime=containerd
sudo systemctl restart containerd

文件对比(右边是我原来的):
image

参考资料

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

posted @ 2025-09-01 13:23  乔闻  阅读(16)  评论(0)    收藏  举报