本文永久链接: https://www.xtplayer.cn/kubernetes/kubernetes-secret-device-or-resource-busy/
![image-20210129165812618](https://i-blog.csdnimg.cn/blog_migrate/ccc712c69b4827ac2cdec190bb017b9f.png)
如上图,有时候升级业务 Pod 时,旧业务 Pod 一直处于 removing 状态。在主机上执行 docker ps -a | grep <pod 名称>
也未能查询到残留容器。登录 Pod 所在的主机,执行 docker logs kubelet --tail 100
查看 kubelet 的运行日志,可以看到以下错误日志:
|
处理方法
指定占用的路径
path=/var/lib/kubelet/pods/bc895c3f-2fbf-11eb-a93a-4cd98f444b4d/volumes/kubernetes.io~secret/default-token-r9sxw
查找占用路径的进程 pid 号。
通过以下命令可以查询到占用上面路径的 pid 号。
find /proc/*/mounts -exec grep ${path} {} +
应该会得到类似以下的结果,/proc/ 与 /mounts 中间则为进程 pid 号。
/proc/9706/mounts /var/lib/kubelet/pods/bc895c3f-2fbf-11eb-a93a-4cd98f444b4d/volumes/kubernetes.io~secret/default-token-r9sxw
根据上一步中查询到的 pid 号,接着执行以下命令查看具体是什么进程占用
ps -ef | grep <pid 号>