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

当前回答

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

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

其他回答

实用的答案——你可以通过运行:

kubectl delete pod NAME --grace-period=0

历史答案——在1.1版本中有一个问题,有时如果pod的节点被不干净地从集群中移除,则它们会处于终止状态。

发生这种情况的一个原因可能是关闭一个节点(而不耗尽它)。在这种情况下修复是再次打开节点;那么终止应该成功。

从资源(pod,deployment,ds等)中删除终结器块

"finalizers": [
  "foregroundDeletion"
]

如果——grace-period=0不起作用,那么你可以这样做:

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

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

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