专栏首页YP小站K8S故障排查指南- but volume paths are still present on disk

K8S故障排查指南- but volume paths are still present on disk

问题产生

在使用 Kubernetes 时,有时会遇到 Pod 状态一直处理 Terminating。Pod 一直没有正常退出,一般情况会使用命令 kubectl delete pods pod-name --force --grace-period=0 强制删除。

如果按照上面命令强制删除Pod,有一定概率会报 Orphaned pod found - but volume paths are still present on disk 错误。

问题排查

上面错误信息可以通过 journalctl -u kubelet -f 或者 tail -f /var/log/messages 命令查看到。

发现一直在报以下错误,从错误信息可以推测出,这台节点存在一个孤立的Pod,并且该Pod挂载了数据卷(volume),阻碍了Kubelet对孤立的Pod正常回收清理。

kubelet 默认把一些数据信息存放在 /var/lib/kubelet 目录下,通过 Pod Id,能查找到 9e6d9bdd-1554-45e6-8831-53e83f8ea263 pod 挂载的数据。

# 查看 pods 下面数据
$ ls /var/lib/kubelet/pods/9e6d9bdd-1554-45e6-8831-53e83f8ea263/

containers  etc-hosts  plugins  volumes

问题解决方法

把错误信息通过谷歌搜索,发现 kubernetes 项目中有一个 issues 提到这个问题。

Issue 链接:https://github.com/kubernetes/kubernetes/issues/60987

通过查看 etc-hosts 文件的 pod name 名称,查看集群中是否还有相关实例在运行,如果没有直接删除 9e6d9bdd-1554-45e6-8831-53e83f8ea263 目录。

注意:直接删除 pod 挂载目录有一定的 危险性,需要确认是否能删除,如果确认没有问题可以直接删除。

# 查看 etc-hosts 文件中 pod name 名称
$ cat /var/lib/kubelet/pods/9e6d9bdd-1554-45e6-8831-53e83f8ea263/etc-hosts

# 删除 9e6d9bdd-1554-45e6-8831-53e83f8ea263 目录
$ cd /var/lib/kubelet/pods/
$ rm -rf 9e6d9bdd-1554-45e6-8831-53e83f8ea263

现在在通过 journalctl -u kubelet -f 命令看kubelet日志,就没有 Orphaned pod found - but volume paths are still present on disk 报错了。

如果 pod 挂载目录不能删除,请参考上面 Issue 链接 查找更好的解决方法。

本文分享自微信公众号 - YP小站(ypxiaozhan),作者:YP小站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kubernetes Pod 生命周期

    Pod 的 status 定义在 PodStatus 对象中,其中有一个 phase 字段。它简单描述了 Pod 在其生命周期的阶段。熟悉Pod的各种状态对我们...

    YP小站
  • K8S 滚动更新如何优雅停止 Pod

    优雅停止(Graceful shutdown) 这个说法来自于操作系统,我们执行关机之后都得 OS 先完成一些清理操作,而与之相对的就是硬中止(Hard shu...

    YP小站
  • Descheduler 实现 K8S Pod 二次调度

    Kubernetes中的调度是将待处理的pod绑定到节点的过程,由Kubernetes的一个名为kube-scheduler的组件执行。调度程序的决定,无论是否...

    YP小站
  • 预编译好的WebRTC库(翻译文)

      WebRTC(Web Real-Time Communication),网页即时通信的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API(音视频的...

    Qt君
  • Linux cat命令

    把textfile1和textfile2的文档内容加上行号(空白行不加)之后将内容附加到textfile3文档里:

    于小勇
  • Linux cat命令

    豌豆贴心提醒,本文阅读时间3分钟,文末有秘密! ? 文 | 豌豆 图 | 来源网络 ? Linux cat命令 命令:cat cat 命令用...

    小小科
  • 解读互联网+供应链金融的7种主流玩法

    数商云供应链服务公司解读:随着供应链的随着互联网供应链金融的发展和崛起,供应链金融这个炫酷的技术名词开始越来越多地被资本家和创业者和BAT提及和追逐。纵观整个大...

    数商云市场营销总监
  • 如何确保容器的安全性?

    对于许多企业来说,容器化使得释放速度更快,比虚拟机更加有效率。与此同时,容器引入了新的部署模式,因此,企业架构师和安全专家需要重新考虑:采取哪些方式来保证应用程...

    静一
  • 打造“平台型”供应链解决食材流通低效信息交流,实现“云”上供应

    民以食为天,“食”在中国是一个4万多亿的大市场,供应链市场约占2万亿元。只要有1%的市场份额,可用空间就足够大。不少资本家相信中国一定会有百亿美金的餐饮供应链企...

    数商云
  • Docker容器学习梳理--SSH方式登陆容器

    前面几篇已经介绍了Docker基础环境的部署,下面介绍下通过ssh方式登陆Docker容器的操作记录(其实不太建议直接用ssh去连接上容器的想法,虽然可以,但是...

    洗尽了浮华

扫码关注云+社区

领取腾讯云代金券