cgroup 挂载设备 Failed to create pod sandbox: rpc error: code = devices subsystem is required: unknown
过程:同事用阿里ackdistro部署了一套k8s集群,我部署各种服务都正常,当我部署一个20G的镜像时,第一次部署成功,删除再部署就报错 devices subsystem is required: unknown,并且导致工作节点内存溢出,k8s集群全部挂掉,只能去机房重启工作节点服务器,尝试重新部署,第一次成功,删除再部署就报错,内存溢出,k8s集群挂掉。

查看k8s日志
journalctl -u kubelet -n 100
报错信息:Warning FailedCreatePodSandBox 30s (x13 over 54s) kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod “wedatasphere-statefulset-0”: Error response from daemon: devices subsystem is required: unknown
查看docker日志
journalctl -u docker -f
报错信息: ep 06 02:12:10 hzsk-05-01 dockerd[1338]: time=“2023-09-06T02:12:10.336322884Z” level=error msg=“Handler for POST /v1.40/containers/52932d5a09a2f53aea2b17709f95029f20b62f47a54609ce86a377fd89a70f78/start returned error: devices subsystem is required: unknown”
Sep 06 02:12:10 hzsk-05-01 dockerd[1338]: time=“2023-09-06T02:12:10.364193881Z” level=error msg=“40123ea57675ce675f789c0c6494dcc6bdda3b3a027adb652e79761082e284e3 cleanup: failed to delete container from containerd: no such container”
Sep 06 02:12:10 hzsk-05-01 dockerd[1338]: time=“2023-09-06T02:12:10.364265928Z” level=error msg=“Handler for POST /v1.40/containers/40123ea57675ce675f789c0c6494dcc6bdda3b3a027adb652e79761082e284e3/start returned error: devices subsystem is required: unknown”
Sep 06 02:12:10 hzsk-05-01 dockerd[1338]: time=“2023-09-06T02:12:10.469269814Z” level=warning msg=“Your kernel does not support CPU shares or the cgroup is not mounted. Shares discarded.”
Sep 06 02:12:11 hzsk-05-01 dockerd[1338]: time=“2023-09-06T02:12:11.255686239Z” level=error msg=“477963d16db184a1af0f6bf2da113b48aa08857c334f8788dcd92d9b0af5bff0 cleanup: failed to delete container from containerd: no such container”
Sep 06 02:12:11 hzsk-05-01 dockerd[1338]: time=“2023-09-06T02:12:11.255758053Z” level=error msg="Handler for POST /v1.40/containers/477963d16db184a1af0f6bf2da113b48aa08857c334f8788dcd92d9b0af5bff0/start returned error: devices subsystem is required: unknown
想不明白问题出现在那里,阿里ackdistro自动化部署k8s?、镜像?,k8s启动yaml?,device从那里来?我摸索了两天,当我看到同事文档,开机要执行一个奇怪的操作,我重启服务器也可以正常启动,是不是跟这个有关

看到了这篇文章Docker 挂载 cgroups 失败的排查及解决方案
ls /sys/fs/cgroup/
我执行了,查看到device,是不是挂载出现了问题。

我打算换一直cgroup挂载方式,搜到一篇很好的文章。
问题解决
apt-get install cgroupfs-mount
cgroupfs-mount
前后对比挂载
mount | grep cgroup


更多推荐

所有评论(0)