我已经用命令启动了豆荚

$ kubectl run busybox \
--image=busybox \
--restart=Never \
--tty \
-i \
--generator=run-pod/v1

出了点问题,现在我没法删除这个Pod了。

我尝试使用下面描述的方法,但Pod不断被重新创建。

$ kubectl delete pods  busybox-na3tm
pod "busybox-na3tm" deleted

$ kubectl get pods
NAME                                     READY     STATUS              RESTARTS   AGE
busybox-vlzh3                            0/1       ContainerCreating   0          14s

$ kubectl delete pod busybox-vlzh3 --grace-period=0

$ kubectl delete pods --all
pod "busybox-131cq" deleted
pod "busybox-136x9" deleted
pod "busybox-13f8a" deleted
pod "busybox-13svg" deleted
pod "busybox-1465m" deleted
pod "busybox-14uz1" deleted
pod "busybox-15raj" deleted
pod "busybox-160to" deleted
pod "busybox-16191" deleted

$ kubectl get pods --all-namespaces
NAMESPACE   NAME            READY     STATUS              RESTARTS   AGE
default     busybox-c9rnx   0/1       RunContainerError   0          23s

当前回答

在我的例子中,我使用下面这些

kubectl get all --all-namespaces 
kubectl delete deployment statefulset-deploymentnament(choose your deployment name)
kubectl delete sts -n default(choose your namespace) --all 
kubectl get pods --all-namespaces

问题得到了解决

其他回答

我遇到了类似的问题:删除部署(kubectl delete deploy <name>)后,pod保持“Running”,删除后自动重新创建(kubectl delete po <name>)。

事实证明,由于某些原因,相关的副本集没有被自动删除,删除后(kubectl delete rs <name>),可以删除pods。

在我的例子中,我使用下面这些

kubectl get all --all-namespaces 
kubectl delete deployment statefulset-deploymentnament(choose your deployment name)
kubectl delete sts -n default(choose your namespace) --all 
kubectl get pods --all-namespaces

问题得到了解决

这个问题的根本原因是deployment/job/replicasets spec属性策略->类型,它定义了pod将被销毁(隐式或显式)时应该发生什么。对我来说,是“再造”。

根据@nomad的回答,删除部署/作业/复制集是一个简单的修复方法,以避免在新手用户搞砸集群之前尝试致命的组合。

在开始调试之前,尝试以下命令来理解幕后操作:

kubectl get all -A -o name
kubectl get events -A | grep <pod-name>

对于有状态集(或服务,作业等)的部署,您可以使用此命令:

此命令终止在指定<命名空间>中运行的任何内容

kubectl -n <NAMESPACE> delete replicasets,deployments,jobs,service,pods,statefulsets --all

和有力的

kubectl -n <NAMESPACE> delete replicasets,deployments,jobs,service,pods,statefulsets --all --cascade=true --grace-period=0 --force

而不是试图弄清楚它是否是一个部署,deamonset, statefulset…或者什么(在我的情况下,它是一个复制控制器,不断跨越新的pod:) 为了确定是什么在图像上不断扩展,我用这个命令得到了所有的资源:

kubectl get all

当然,你也可以从所有命名空间中获取所有资源:

kubectl get all --all-namespaces

或者定义你想要检查的命名空间:

kubectl get all -n NAMESPACE_NAME

一旦我看到复制控制器是我的麻烦,我删除了它:

kubectl delete replicationcontroller/CONTROLLER_NAME