记一次安装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
文件对比(右边是我原来的):

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


浙公网安备 33010602011771号