最近kubernetes遇到了无法删除pod的问题,日志如下:

10月 17 13:29:09 k8s-node kubelet[16145]: I1017 13:29:09.034868   16145 reconciler.go:186] operationExecutor.UnmountVolume started for volume "default-token-pzyxh" (UniqueName: "kubernetes.io/secret/81791176-a505-11e7-accf-5254fe5a9007-default-token-pzyxh") pod "81791176-a505-11e7-accf-5254fe5a9007" (UID: "81791176-a505-11e7-accf-5254fe5a9007")
10月 17 13:29:09 k8s-node kubelet[16145]: E1017 13:29:09.035292   16145 nestedpendingoperations.go:262] Operation for "\"kubernetes.io/secret/81791176-a505-11e7-accf-5254fe5a9007-default-token-pzyxh\" (\"81791176-a505-11e7-accf-5254fe5a9007\")" failed. No retries permitted until 2017-10-17 13:31:11.035205617 +0800 CST (durationBeforeRetry 2m2s). Error: UnmountVolume.TearDown failed for volume "default-token-pzyxh" (UniqueName: "kubernetes.io/secret/81791176-a505-11e7-accf-5254fe5a9007-default-token-pzyxh") pod "81791176-a505-11e7-accf-5254fe5a9007" (UID: "81791176-a505-11e7-accf-5254fe5a9007") : remove /var/lib/kubelet/pods/81791176-a505-11e7-accf-5254fe5a9007/volumes/kubernetes.io~secret/default-token-pzyxh: device or resource busy

解决方法:

使用脚本检查目录被谁占用

#!/bin/bash
declare -A map
for i in `find /proc/*/mounts -exec grep $1 {} + 2>/dev/null | awk '{print $1"#"$2}'`
dopid=`echo $i | awk -F "[/]" '{print $3}'`point=`echo $i | awk -F "[#]" '{print $2}'`mnt=`ls -l /proc/$pid/ns/mnt |awk '{print $11}'`map["$mnt"]="exist"cmd=`cat /proc/$pid/cmdline`echo -e "$pid\t$mnt\t$cmd\t$point"
donefor i in `ps aux|grep docker-containerd-shim |grep -v "grep" |awk '{print $2}'`
domnt=`ls -l /proc/$i/ns/mnt  2>/dev/null | awk '{print $11}'`if [[ "${map[$mnt]}" == "exist" ]];thenecho $mntfi
done
sh leak.sh /var/lib/kubelet/pods/81791176-a505-11e7-accf-5254fe5a9007/volumes/kubernetes.io~secret/default-token-pzyxh

可以看到被占用:

8392    mnt:[4026532536]    /bin/bash/start.sh--logtostderr -v=2    /var/lib/kubelet/pods/81791176-a505-11e7-accf-5254fe5a9007/volumes/kubernetes.io~secret/default-token-pzyxh

找到8392的父进程:

[root@k8s-node ~]# ps -ef | grep 8392
root      8392  8345  0 9月30 ?       00:00:00 /bin/bash /start.sh --logtostderr -v=2
root      8420  8392  0 9月30 ?       00:17:19 /usr/bin/python /usr/bin/supervisord -c supervisord.conf
root     13757  7126  0 13:35 pts/2    00:00:00 grep --color=auto 8392
[root@k8s-node ~]#

继续找到8345的父进程:

root      8345   783  0 9月30 ?       00:00:01 docker-containerd-shim 42fe1338a0ebd849630d92f46b4c343376ec7c7ffe9a3666f9725715d4f4d064 /var/run/docker/libcontainerd/42fe1338a0ebd849630d92f46b4c343376ec7c7ffe9a3666f9725715d4f4d064 docker-runc
root      8392  8345  0 9月30 ?       00:00:00 /bin/bash /start.sh --logtostderr -v=2

可以看到是id为42fe1338a0ebd849630d92f46b4c343376ec7c7ffe9a3666f9725715d4f4d064的docker在占用

exec到容器里面df -h看到/var/lib/kubelet也被挂载到容器里面,在容器里面umount以后就可以删除了。

docker exec -it 42fe1338a0ebd849630d92f46b4c343376ec7c7ffe9a3666f9725715d4f4d064 sh

作者:YiQinGuo
链接:https://www.jianshu.com/p/4fc11a0a31da

kubernetes device or resource busy的问题相关推荐

  1. 删除K8S集群的/var/lib/kubelet目录报Device or resource busy错误解决方法

    无法删除/var/lib/kubelet目录 [root@k8s-node2 k8s_node]# rm -rf /var/lib/kubelet rm: cannot remove '/var/li ...

  2. java openfile busy_android java.io.IOException: open failed: EBUSY (Device or resource busy)

    今天遇到一个奇怪的问题, 测试在程序的下载界面,下载一个文件第一次下载成功,删除后再下载结果下载报错, 程序:file.createNewFile(); 报错:java.io.IOException: ...

  3. rm: cannot remove directory `misc': Device or resource busy

    rm: cannot remove directory `misc': Device or resource busy 解决方法: [root@crmnormal misc]# cat /etc/mi ...

  4. docker 磁盘问题:device or resource busy

    问题:[root@hdp-gp-dk02 ~]# docker start 01ea65845e45 Error response from daemon: Cannot start containe ...

  5. linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy

    最近删除服务器目录,始终删除不了,总是Device or resource busy,查了资料,总结一下原因 1.rm -rf {mydir}/ 删除不了,可能挂载了盘在这个目录,所以,删除不了,先卸 ...

  6. 使用fswebcam报错Error selecting input 0 VIDIOC_S_INPUT: Device or resource busy或者使用metion监控,画面为灰色

    一,BUG解决 不知道大家使用树莓派的时候,有没有遇到过使用fswebcam报错Error selecting input 0 VIDIOC_S_INPUT: Device or resource b ...

  7. Linux rm -rf 之rm: cannot remove `linux': Device or resource busy

    2017年1月19日,清理linux服务器上一目录时出现灵异事件,居然有rm -rf不能删除的东西,排除用户进程占用,但是最后我还是把它给删掉了.     处理过程如下: [oracle@se31 ~ ...

  8. Failed to unmount /storage/udisk (Device or resource busy, retries 6, action 0)

    具体报错信息: 09-19 10:36:48.163 181-212/? W/Vold: Failed to unmount /storage/udisk (Device or resource bu ...

  9. linux 下文件夹无法删除(报:Device or resource busy),然后进入文件夹也无法创建新的文件夹(Permission denied)

    首先,看下问题: 在这之前,我执行了命令: sudo chmod -R 777 localmnt/ sudo chown -R ymengkai:mts localmnt/ 当我改变了他的权限之后,我 ...

  10. 驱动加载错误:insmod: error inserting 'hello.ko': -1 Device or resource busy

    一:insmod时候错误: 1:错误信息insmod: error inserting 'hello.ko': -1 Device or resource busy 2:原因:你的代码里面的设备号和系 ...

最新文章

  1. 最近要换个主机,现在的太慢了
  2. 清华唐杰:GPT-3表示能力已经接近人类了,但它有一个阿喀琉斯之踵
  3. 三言两语说说进程调度
  4. mysql备份工具 :mysqldump mydumper Xtrabackup 原理
  5. matlab 万能,matlab 万能实用的线性曲线拟合方法
  6. STM32编码器的学习笔记
  7. AI 女神是如何炼成的?
  8. 如何做好大型数据中心的运维
  9. python 服务器_使用 Python 开发 EMQ X MQTT 服务器插件
  10. 20155313 2016-2017-2 《Java程序设计》第十周学习总结
  11. LINUX上开发ffmpeg程序,查看链接的库
  12. 聊聊最近的CPA心得吧
  13. 数据挖掘概念与技术(韩家伟)阅读笔记5--数据规范化和属性构造
  14. Java后台生成NO2016012701(代码+年月日+流水号)这样的流水编号
  15. 免费屏幕录像软件哪个好?简单几步教你快速录制无水印的高清视频!
  16. 控制系统--线性定常数系统的传递函数
  17. At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger
  18. 计算机入门基础知识!学编程从认识计算机开始!
  19. 微型计算机联想c325,寓教于乐一体机 联想IdeaCentre B325评测
  20. 电脑连WiFi怎么查看密码是多少

热门文章

  1. 三、Logstash安装部署
  2. 以太坊执行层P2P网络架构与设计:Discv5
  3. 创维电视显示服务器异常,创维网络电视,看在线电影及网络异常的处理!
  4. ipv6的127位掩码如何表示_网络基础 | 浅谈IP地址与子网掩码
  5. 【测试】各类视频(MP4、FLV、MKV、3GP)测试地址摘录,目前链接亲测有效!
  6. 基于触摸屏PLC的温度采集及简单控制
  7. 社会网络分析 社区划分—经典数据集
  8. 计算机朝微型化网络化发展例子,收集计算机朝微型化,网络化,智能化和多功能化发展的例子...
  9. jw player去掉logo 二次开发
  10. Emulex着眼数据中心LAN与SAN的聚合