Cannot shell into the container, rpc error: code = 5 desc ... shim-log.json: no such file or directory

Cannot shell into the container, rpc error: code = 5 desc ... shim-log.json: no such file or directory

试图通过kubectl exec -it xxxxxx

shell进入容器

但是 returns

rpc error: code = 5 desc = open /var/run/docker/libcontainerd/containerd/faf3fd49262cc738e16368001eba5e1113abcb8a87e7b818cb84af3799906149/30fe901c16e0465aa15b596bf3e4f244fb12a7e4133b6e4da5aa35167a8dfb30/shim-log.json: no such file or directory

正在尝试重启节点但无济于事

docker 守护程序似乎有问题。如果您从容器中添加日志来研究根本原因,将会有所帮助。

部署alpine pod,看看能不能进容器。这是为了隔离问题是否出在您所在的平台或 pod 运行。

kubectl run pingpong --image alpine ping 8.8.8.8
kubectl exec -it <pingpong-pod-name>  sh

很可能您所在的 pod 有问题 运行。分享容器日志以获得进一步帮助

谢谢@Prafull Ladha

最后我重启了我的pods无法脱壳的节点docker(systemctl restart docker),恢复正常

问题出在 containerd 上,一旦 containerd 在后台重启,docker 守护进程仍会尝试根据旧套接字句柄处理事件流。在那之后,当客户端无法连接到 containerd 时的错误处理导致 CPU 机器上的峰值。

这是 docker 的未决问题,目前的解决方法是重新启动 docker。

sudo systemctl restart docker