我试图删除一个有12个pod的ReplicationController,我可以看到一些pod卡在终止状态。

我的Kubernetes集群由一个控制平面节点和三个安装在Ubuntu虚拟机上的工作节点组成。

这个问题的原因是什么?

NAME        READY     STATUS        RESTARTS   AGE
pod-186o2   1/1       Terminating   0          2h
pod-4b6qc   1/1       Terminating   0          2h
pod-8xl86   1/1       Terminating   0          1h
pod-d6htc   1/1       Terminating   0          1h
pod-vlzov   1/1       Terminating   0          1h

当前回答

你可以使用awk:

kubectl get pods --all-namespaces | awk '{if ($4=="Terminating") print "oc delete pod " $2 " -n " $1 " --force --grace-period=0 ";}' | sh

其他回答

可以使用以下命令强制删除POD。

kubectl delete pod <PODNAME> --grace-period=0 --force --namespace <NAMESPACE>

在我的案例中,——force选项不太管用。我还能看到豆荚!它卡在终止/未知模式。跑步之后

kubectl -n redis delete pods <pod> --grace-period=0 --force

我跑

kubectl -n redis patch pod <pod> -p '{"metadata":{"finalizers":null}}'

我使用这个命令删除pods

kubectl delete pod --grace-period=0 --force --namespace <NAMESPACE> <PODNAME>

但是当我尝试运行另一个pod时,它没有工作,它被卡在“Pending”状态,它看起来像节点本身被卡住了。

对我来说,解决方案是重新创建节点。我只是去了GKE控制台,从集群中删除了节点,所以GKE开始了另一个。

从那以后,一切又开始正常工作了。

我的pod卡在“终止”中,即使在我尝试重新启动docker和重新启动服务器之后。在编辑pod并删除'finalizer'下面的项目后解决

$ kubectl -n mynamespace edit pod/my-pod-name

我不建议强制删除pod,除非容器已经退出。

验证kubelet日志,看看是什么导致了问题“journalctl -u kubelet” 检查docker日志:journalctl -u docker.service 检查吊舱的卷挂载点是否仍然存在,是否有人持有锁。 检查主机内存或磁盘是否不足