我试图删除一个有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

当前回答

我最近在释放集群中的资源时偶然发现了这一点。下面是删除它们的命令。

kubectl get pods --all-namespaces | grep Terminating | while read line; do
  pod_name=$(echo $line | awk '{print $2}' ) \
  name_space=$(echo $line | awk '{print $1}' ); \
  kubectl delete pods $pod_name -n $name_space --grace-period=0 --force
done

希望这能帮助到读到这篇文章的人

其他回答

我最近在删除rook ceph命名空间时偶然发现了这个问题——它卡在了终止状态。

唯一有帮助的是通过使用curl直接调用k8s api来删除kubernetes终结器。

Kubectl获取命名空间鲁克-ceph -o json > tmp.json 删除tmp中的kubernetes终结器。Json(留下空数组“终结器”:[]) 在另一个终端上运行kubectl代理进行身份验证,并在返回的端口上运行curl请求 curl -k -H "Content-Type: application/json" -X PUT——data-binary @tmp。json 127.0.0.1:8001 /美丽/集群/ c-mzplp / api / v1 /命名空间/ rook-ceph /完成 命名空间消失了

详细的rook ceph拆卸在这里。

强制删除命名空间中的所有pod:

kubectl delete pods --all -n <namespace> --grace-period 0 --force

我使用这个命令删除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:

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

——force标志是强制的。