Kubernetes中强制删除已销毁的顽固pod

Kubernetes运行中因为网络、磁盘、程序错误等缘由可能致使pod没法删除。这里介绍一个强制删除pod的方法。网络

  • 注意,强制删除pod会致使其中的数据来不及保存,有可能引起数据丢失或者错误,谨慎使用!

通常状况下,添加--force参数便可将其删除。函数

批量删除pod参考下面的脚本:spa

#
# Clean up dying pods
#
pods=$( kubectl get pods | grep -v Running | tail -n +2 | awk -F " " '{print $1}' )
for pod in $pods;
do
    kubectl delete pod $pod --force
done

可是,有时候使用--force参数仍然没法删除该pod,有多是删除的时间过长,能够添加--now来当即删除。code

kubectl delete pod xxx --now

若是提示--grace-period未到期,能够将--grace-period强制设为0,通常就能够删除掉了。get

kubectl delete pod NAME --grace-period=0 --force

pod在处于建立或撤销期间,有可能更新生命期的函数失效,致使pod的销毁期一直保持不变,从而Kubernetes系统调度器不会主动将其删除。此时,能够使用上面的方法来删除。kubernetes