如何在Kubernetes中自动删除一次性任务的Pod?

21
为了检查状态,我在 Kubernetes 中使用交互式 shell 启动了 busybox
$ kubectl run -i --tty busybox --image=busybox --restart=Never -- sh
/ # exit
$ kubectl run -i --tty busybox --image=busybox --restart=Never -- sh
Error from server (AlreadyExists): pods "busybox" already exists

当我退出shell时,我期望pod也会被删除。但是它仍然存在于完成状态。

$ kubectl get pods -a
NAME                     READY     STATUS      RESTARTS   AGE
busybox                  0/1       Completed   0          58m

我需要删除这个Pod,它很烦人。

我们有没有简单的参数可以用来要求k8s删除这个Pod以完成此项任务?

1个回答

32
只需添加 --rm
$ kubectl run busybox -i --tty --image=busybox --restart=Never --rm -- sh
If you don't see a command prompt, try pressing enter.
/ # exit
$ kubectl get pod busybox
Error from server (NotFound): pods "busybox" not found

--rm=false: 如果为true,则删除此命令创建的已附加容器的资源。


简单,我只是在文档中找不到。太好了!! - Larry Cai
kubectl 1.22.1 版本中对我不起作用。但我通过使用 KUBECTL_COMMAND_HEADERS=false 找到了一个解决方法: https://github.com/kubernetes/kubectl/issues/1098#issuecomment-929743957。 - David Ongaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接