k8s更新版本后,老的POD一直出现Terminating,多久都不能删除。

然后,进入具体的节点机器之后,查看日志输出如下类似:

ERROR: driver "overlay" failed to remove root filesystem for 738f492a57f80951b279c3bd82f59b6230275a298ab74d7f26c4564cf3d1cf2c: remove /var/lib/docker/overlay/6031651302dba6053c5fde07937f4fd00dfc063577fa343b12c83f1c26b77887/merged: device or resource busy

然后,docker ps -a输出:

xxx Removal In Progress

然后,查看了网上的帖子,这个最有用:

http://www.jiangjiang.space/2017/09/25/%E8%A7%A3%E5%86%B3docker%E5%AE%B9%E5%99%A8%E5%88%A0%E9%99%A4%E5%90%8E%E5%A4%84%E4%BA%8Eremoval-in-progress-%E7%8A%B6%E6%80%81%E4%B8%8D%E9%87%8A%E6%94%BE/

我的追查的输出一样的。ntpd进程作怪。

解决:

先手工停掉ntpd,清除docker。

# 报错为此docker卷无法umount
/var/lib/docker/devicemapper/mnt/85ced908cf8fcc4704a581fcc84724b5f6de232610b28e40b2be6f1ff159ead7
# 搜索所有进程是否有打开此卷的
grep -l 85ced908cf /proc/*/mountinfo
/proc/18683/mountinfo

# 看这个进程是什么进程

ps -f 18683
UID        PID  PPID  C STIME TTY      STAT   TIME CMD
ntp      18683     1  0 03:33 ?        Ss     0:00 /usr/sbin/ntpd -u ntp:ntp -g

# 很惊讶竟然是ntp
# ntpd 会打开所有挂在的卷,原因和原理还不得而知。但是能确定的是ntpd阻止了容器卷的umount,同时容器删除动作就hang住了
# 停掉ntpd
systemctl stop ntpd

# 卷被释放了
grep -l 85ced908cf /proc/*/mountinfo

# 成功删除
rm -rf/var/lib/docker/devicemapper/mnt/85ced908cf8fcc4704a581fcc84724b5f6de232610b28e40b2be6f1ff159ead7

  

然后,再编辑docker.service文件,重启服务。

#手工编辑
/etc/systemd/system/multi-user.target.wants/docker.service

# 在 Service 段最后加入私有挂在参数
[Service]
MountFlags=private

# 重新加载systemd
systemctl daemon-reload

# 重启docker
systemctl restart docker.service

  

k8s删除pod时,docker服务出现挂载点泄漏问题的解决的更多相关文章

  1. k8s删除pod一直处于terminating状态

    我这里的pod是与nfs有关,nfs挂载有问题导致pod有问题,执行完删除命令以后看到pod一直处于terminating的状态. 这种情况下可以使用强制删除命令: kubectl delete po ...

  2. 删除文件时提示“找不到该项目”,怎么解决? 转摘自:http://jingyan.baidu.com/article/e4d08ffdf5ab470fd2f60df4.html

    故障现象:在使用Windows系统删除文件或者文件夹的时候,有时会出现“找不到该项目”的错误提示,可能再次“重试”也无济于事. 那么,接下来T库小编就为库友们简单概括一下出现该问题的原因. 故障原因: ...

  3. k8s的Pod状态和生命周期管理

    Pod状态和生命周期管理   一.什么是Pod? 二.Pod中如何管理多个容器? 三.使用Pod 四.Pod的持久性和终止 五.Pause容器 六.init容器 七.Pod的生命周期 (1)Pod p ...

  4. 使用kuboard界面管理k8s集群时使用ConfigMap挂载挂载到pod容器中,映射成一个文件夹

    将 ConfigMap 作为一个数据卷(在挂载时不指定数据卷内子路径,需要指定ConfigMap的子路径)挂载到容器,此时 ConfigMap 将映射成一个文件夹,每一个 KEY 是文件夹下的文件名, ...

  5. kubernetes/k8s CRI分析-kubelet删除pod分析

    关联博客<kubernetes/k8s CRI 分析-容器运行时接口分析> <kubernetes/k8s CRI分析-kubelet创建pod分析> 之前的博文先对 CRI ...

  6. k8s中删除pod后仍然存在问题

    分析: 是因为删除了pod,但是没有删除对应的deployment,删除对应的deployment即可 实例如下: 删除pod [root@test2 ~]# kubectl get pod -n j ...

  7. K8s QoS Pod资源服务质量控制

    Kubernetes 中如果一个 Node 节点上的 Pod 占用资源过多并且不断飙升导致 Node 节点资源不足,可能会导致为了保证节点可用,将容器被杀掉.在遇见这种情况时候,我们希望先杀掉那些不太 ...

  8. k8s系列---pod介绍

    # yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必选,元数据 name: string # ...

  9. 使用 Skywalking 对 Kubernetes(K8s)中的微服务进行监控

    1. 概述 老话说的好:任何成功都不是轻易得来的,是不断地坚持与面对的结果. 言归正传,之前我们聊了 SpringCloud 开发的微服务是如何部署在  Kubernetes(K8s)集群中的,今天我 ...

随机推荐

  1. [LeetCode] 77. Combinations 全组合

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  2. [LeetCode] 324. Wiggle Sort II 摆动排序 II

    Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]... ...

  3. C#基于RabbitMQ实现客户端之间消息通讯实战演练

    一.背景介绍和描述 MQ消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.何时需要消息队列?当你需要使用 ...

  4. laravel composer vendor 目录加载类库详细 之后做说明

    composer installLoading composer repositories with package informationInstalling dependencies (inclu ...

  5. Android接收RabbitMQ消息。

    参考:https://blog.csdn.net/qq_36576738/article/details/83754621 我这android这边就不实现发布消息功能.因为我是在服务端那边推送消息. ...

  6. Deepin15.11源码安装Nginx17.5包括stream模块和njs模块

    一:先到官网下载nginx-1.17.5.tar.gz包并且解压到当前目录,解压后目录为:nginx-1.17.5: 二:下载njs源码(它没有像stream模块一样附带在了nginx源码里),因此首 ...

  7. KAFA优点和缺点

    我们上一期的Kafka教程中,我们讨论了Kafka的Books.今天,我们将讨论卡夫卡的优势和劣势.因为,在使用之前了解任何技术的局限性非常重要,在优点的情况下也是如此.所以,让我们详细讨论卡夫卡优势 ...

  8. 二、SpringBoot基础配置

    目录 2.1 @SpringBootApplication 2.3 服务器配置 2.4 修改启动banner 小结 2.1 @SpringBootApplication 从上篇文章中知道@Spring ...

  9. centos将nginx服务设置为开机自动启动

    centos将nginx服务设置为开机自动启动 1.在/etc/init.d下创建文件nginx 发现原来就有并且配置就是默认的,而且是正确的 命令为: vim /etc/init.d/nginx 需 ...

  10. vue 仿写微信公众号自定义菜单

    先看效果图 代码参考 <template> <div> <!-- 公众号设置 --> <el-col :span="24" style=& ...