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

时间:2018-10-05 15:54:17

标签: kubernetes kubectl amazon-eks aws-eks

我可以使用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

完成后,我希望将其销毁,而不必调用另一个命令。

1 个答案:

答案 0 :(得分:3)

所以问题是关于运行Jobs,而不是像Kubernetes Deployments抽象那样运行部署,而抽象创建了ReplicaSet,但更像Kubernetes Jobs

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

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

如果同时指定CronJob和`--schedule =“”选项,则会创建--restart=OnFailure。这些吊舱会定期运行,因此会自动删除。

有关kubectl run here的更多信息。