您可以自动销毁 kubernetes pod 部署吗?

Can you auto destroy a kubernetes pod deployment?

我可以使用 kubectl cli 删除部署,但是有没有办法让我的部署在完成后自动销毁?对于我的情况,我们正在 AWS EKS 上的 Docker 容器中启动一个长 运行 的过程。当我查看状态时,它是 'running',然后一段时间后状态是 'completed'。那么有什么方法可以让 kubernetes pod 在完成后自动销毁吗?

kubectl run some_deployment_name --image=path_to_image
kubectl get pods
  //the above command returns...
some_deployment_name1212-75bfdbb99b-vt622 0/1  Running 2  23s
  //and then some time later...
some_deployment_name1212-75bfdbb99b-vt622 0/1  Completed 2  15m

完成后,我希望将其销毁,而无需调用其他命令。

所以问题是关于 运行ning 作业而不是 Kubernetes Deployments abstraction that creates a ReplicaSet but more like Kubernetes Jobs

中的部署

当您指定 --restart=OnFailure 选项时,使用 kubectl run 创建 Job。这些作业不会被集群清除,除非您使用 kubectl delete <pod-name> 手动删除它们。更多信息 here

如果您使用的是 Kubernetes 1.12 或更高版本,则引入了新的作业规范:ttlSecondsAfterFinished。你也可以用它来清理你的工作。另一个更耗时的选择是编写您自己的 Kubernetes 控制器来清理常规作业。

如果您同时指定 --restart=OnFailure 和 `--schedule="" 选项,则会创建 CronJob。这些 pods 会自动删除,因为它们会定期 运行。

有关 kubectl run here 的更多信息。