手动删除vcjob后Pod一直处于Terminating状态
问题现象描述
使用kubectl delete -f xxx.yaml删除vcjob后Pod一直处于Terminating状态。
原因分析
设置了比较长的优雅退出的超时时间,导致删除任务后,任务的Pod长时间处于Terminating状态。
解决措施
方法一:卸载Pod的NFS挂载路径
- 执行以下命令,查看Pod的NFS挂载路径。
mount|grep NFS共享IP地址
图1 查询结果如图,“xxx.xxx.xxx.xxx:/data/k8s/run”和“xxx.xxx.xxx.xxx:/data/k8s/dls_data/public/dataset/resnet50”即为该Pod的NFS挂载路径。
- 执行以下命令,卸载该Pod的所有NFS挂载路径。
umount -f NFS挂载路径
- 执行以下命令,查看Pod的NFS挂载路径是否已卸载。
mount|grep NFS共享IP地址
- 是,任务结束。
- 否,请执行方法二。
方法二:删除Pod所属的Docker进程
- 执行以下命令,查看Pod所属的Docker进程。
docker ps |grep Pod名称
- 执行以下命令,查看Docker进程占用的文件。
ll /var/lib/docker/containers |grep Docker进程号
查询结果示例如下。
root@ubuntu:/data/k8s/run# ll /var/lib/docker/containers |grep 95aeeafe2db8 drwx------ 4 root root 4096 Jun 24 16:00 95aeeafe2db898065094dd34dbfbeca04734d5248316aa802d43a36b4d8b99df/
- 执行以下命令,删除Docker进程占用的文件。
rm -rf /var/lib/docker/container/95aeeafe2db898065094dd34dbfbeca04734d5248316aa802d43a36b4d8b99df/
- 执行以下命令,查询Docker占用文件的进程ID。
lsof |grep 95aeeafe2db8
图2 查询结果 - 执行以下命令,结束进程。
kill -9 进程ID
- 执行以下命令,查看进程是否已删除。
- 执行以下命令,删除Pod所属的Docker。
docker rm 95aeeafe2db8
删除之后需要等待约1分钟才能再次查看Pod信息。
父主题: 使用时出现的故障