我可以使用 kubectl cli 删除部署,但是有没有办法让我的部署在完成后自动销毁?对于我的情况,我们正在 AWS EKS 上的 Docker 容器中启动一个长期运行的过程。当我检查状态时,它是“正在运行”,然后一段时间后状态是“已完成”。那么有没有办法让 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
一旦完成,我希望它被销毁,而不必调用另一个命令。
最佳答案
所以问题是关于运行作业而不是像 Kubernetes 中的部署 Deployments创建 ReplicaSet 的抽象但更像是 Kubernetes Jobs
一个 Job
是用 kubectl run
创建的当您指定 --restart=OnFailure
时选项。除非您使用 kubectl delete <pod-name>
手动删除这些作业,否则集群不会清除它们。 .更多信息 here .
如果您使用 Kubernetes 1.12 或更高版本,则引入了新的作业规范:ttlSecondsAfterFinished
.你也可以用它来清理你的工作。另一个更耗时的选择是编写自己的 Kubernetes Controller 来清理常规作业。
一个 CronJob
如果您同时指定 --restart=OnFailure
和`--schedule=""选项。这些 pod 会被自动删除,因为它们定期运行。
更多信息 kubectl run
here .
关于kubernetes - 您可以自动销毁 kubernetes pod 部署吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52669380/