k8s有时会遇到 Pod 状态一直处理 Terminating。Pod 一直没有正常退出,一般情况会使用命令 kubectl delete pods pod-name --force --grace-period=0 强制删除。
如果按照上面命令强制删除Pod,有一定概率会报 Orphaned pod found - but volume paths are still present on disk 错误。此问题可能会导致宿主节点 notready
解决办法
删除相应的pod id的kubelet文件夹
rm -rf /var/lib/kubelet/pods/356a8df1-0b4e-11e9-8afe-fa163e75de2b
保险起见,先将目录直接mv走
mv /var/lib/kubelet/pods/356a8df1-0b4e-11e9-8afe-fa163e75de2b /tmp/var/lib/kubelet/pods/356a8df1-0b4e-11e9-8afe-fa163e75de2b
查看kubelet日志时候,可以看到一些如下error
在/var/lib/kubelet/pods/ 下的pod文件夹中查看 pod volume, 可看到这些孤儿卷(即pod已经不存在此节点,但是卷信息还在)
查看某个pod路径下的文件,可以看到volume还存在 为删除的csi
集群已经不存在此pvc
参考:
https://github.com/kubernetes/kubernetes/issues/60987
https://xigang.github.io/2018/12/31/Orphaned-pod/