手动删除vcjob后Pod一直处于Terminating状态

问题描述

使用kubectl delete -f xxx.yaml删除vcjob后Pod一直处于Terminating状态。

可能原因

方法一:卸载Pod的NFS挂载路径

  1. 执行以下命令,查看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挂载路径。

  2. 执行以下命令,卸载该Pod的所有NFS挂载路径。

    umount -f NFS挂载路径

  3. 执行以下命令,查看Pod的NFS挂载路径是否已卸载。

    mount|grep NFS共享IP地址

方法二:删除Pod所属的docker进程

  1. 执行以下命令,查看Pod所属的Docker进程。

    docker ps |grep Pod名称

  2. 执行以下命令,查看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/

  3. 执行以下命令,删除Docker进程占用的文件。

    rm -rf /var/lib/docker/container/95aeeafe2db898065094dd34dbfbeca04734d5248316aa802d43a36b4d8b99df/

  4. 执行以下命令,查询Docker占用文件的进程ID。

    lsof |grep 95aeeafe2db8

    图2 查询结果

  5. 执行以下命令,结束进程。

    kill -9 进程ID

  6. 执行以下命令,查看进程是否已删除。

    ps -ef | grep 进程ID

    • 是,请执行7
    • 否,请参考4再次查询并结束进程后执行7

  7. 执行以下命令,删除Pod所属的Docker。

    docker rm 95aeeafe2db8

    删除之后需要等待约1分钟才能再次查看Pod信息。