Kubernetes Pod执行kubectl delete -f后卡在Terminating状态的解决方法
解决Kubectl删除Pod后容器卡在Terminating状态的问题
我之前也碰到过一模一样的棘手问题:执行 kubectl delete -f <配置文件> 命令后,目标Pod一直卡在Terminating状态,翻遍Docker日志也找不到任何能排查问题的有效信息。当时只能靠重启Docker让Pod强制消失,但这明显是治标不治本的临时办法,每次遇到都耽误时间。
折腾了好几个小时,翻了无数文档和社区帖子后,终于在一篇帖子里找到了问题根源——我是在Ubuntu 16.04环境部署的Kubernetes,当初跟着入门教程安装的是系统自带的docker.io包,而这个版本和Kubernetes的兼容性存在隐性问题。
最终解决步骤
亲测有效的解决方案如下,按顺序执行即可彻底解决问题:
- 卸载系统自带的docker.io
执行以下命令彻底清理:sudo apt-get purge docker.io sudo apt-get autoremove --purge docker.io - 安装官方Docker CE或Docker EE版本
替换为Kubernetes官方推荐的Docker发行版,按照官方标准安装流程完成部署(确保版本和你的Kubernetes集群适配)。 - 关闭Swap功能
先执行命令临时关闭Swap:
再编辑sudo swapoff -a/etc/fstab文件,注释掉Swap相关的挂载行,避免系统重启后Swap自动恢复开启。
完成以上操作后,我再执行kubectl delete -f命令,Pod就能正常终止退出,再也没出现过卡在Terminating状态的情况。希望这个方案能帮到遇到同样问题的朋友。
内容的提问来源于stack exchange,提问作者kleuf
相关产品推荐
相关产品推荐

