我已经用命令启动了豆荚

$ 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

当前回答

在学习了一个交互式教程后,我最终得到了一堆pod、服务和部署:

me@pooh ~ > kubectl get pods,services
NAME                                       READY   STATUS    RESTARTS   AGE
pod/kubernetes-bootcamp-5c69669756-lzft5   1/1     Running   0          43s
pod/kubernetes-bootcamp-5c69669756-n947m   1/1     Running   0          43s
pod/kubernetes-bootcamp-5c69669756-s2jhl   1/1     Running   0          43s
pod/kubernetes-bootcamp-5c69669756-v8vd4   1/1     Running   0          43s

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   37s
me@pooh ~ > kubectl get deployments --all-namespaces
NAMESPACE     NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
default       kubernetes-bootcamp   4         4         4            4           1h
docker        compose               1         1         1            1           1d
docker        compose-api           1         1         1            1           1d
kube-system   kube-dns              1         1         1            1           1d

要清理所有内容,删除—一切正常:

me@pooh ~ > kubectl delete pods,services,deployments --all
pod "kubernetes-bootcamp-5c69669756-lzft5" deleted
pod "kubernetes-bootcamp-5c69669756-n947m" deleted
pod "kubernetes-bootcamp-5c69669756-s2jhl" deleted
pod "kubernetes-bootcamp-5c69669756-v8vd4" deleted
service "kubernetes" deleted
deployment.extensions "kubernetes-bootcamp" deleted

这给我留下了一个空的Kubernetes集群:

me@pooh ~ > kubectl get pods,services,deployments
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   8m

其他回答

在某些情况下,即使删除部署,pod仍然不会消失。在这种情况下,要强制删除它们,可以运行以下命令。

Kubectl删除pods podname——grace-period=0——force

很明显,有什么东西在复活荚果。虽然很多其他的答案让你看一切(复制集,作业,部署,有状态集,…)来找到可能重生pod的东西,但你可以只看pod,看看是什么衍生了它。例如:

$ kubectl describe pod $mypod | grep 'Controlled By:'
Controlled By:  ReplicaSet/foobar

这告诉你是什么创造了这个豆荚。然后你可以删除它。

基本上有两种方法可以移除pod

Kubectl scale——replicas=0部署name_of_deployment。 这将设置副本的数量为0,因此它将不会重新启动pod。 使用helm卸载您在管道中实现的图表。 不要直接删除部署,而是使用helm卸载图表,这将删除它创建的所有对象。

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

kubectl get all

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

kubectl get all --all-namespaces

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

kubectl get all -n NAMESPACE_NAME

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

kubectl delete replicationcontroller/CONTROLLER_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