场景
在k8s+containerd的环境上删除容器失败,容器一直保持在terminating状态。
containerd日志显示”failed to check network namespace closed: remove netns:unlinkat *: device or resource busy”
,不影响新创建的容器运行。
ip netns list |
寻找解决办法
百度搜索出来
mount信息显示netns还是被mount的,但是umount时又显示not mount
查看代码,测试验证都无效果。
真的坑!
根因其实时 ip netns add命令搞的鬼,和这个命令的行为有关,之前执行过这个命令导致containerd创建的netns不可见。
解决办法其实只有umount下/run/netns就好了。
能解决就不会单独写一篇文章了,还是Google搜索引擎强大!
echo 1 > /proc/sys/fs/may_detach_mounts |
注:在CentOS7.4引入了一个新的参数来控制内核的行为。 /proc/sys/fs/may_detach_mounts 默认设置为0;当系统有容器运行的时候,需要将该值设置为1。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 htdocs!