你能自动销毁一个 kubernetes pod 部署吗?

Mat*_*ttC 5 kubernetes kubectl amazon-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
Run Code Online (Sandbox Code Playgroud)

一旦完成,我希望它被销毁,而不必调用另一个命令。

Ric*_*ico 4

因此,问题在于运行作业,而不是像 Kubernetes部署抽象中那样运行部署,该抽象创建ReplicaSet,但更像是 Kubernetes作业

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

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

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

更多信息请参见kubectl run 此处