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

标签 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

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

最佳答案

所以问题是关于运行作业而不是像 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/

相关文章:

kubernetes - 如何找到 kubectl 支持的给定资源类型的字段选择器列表?

kubernetes - 如何在 EKS 中将 ELB 检查协议(protocol)声明为 HTTP

kubernetes - 如何限制某个 "type"同时运行的作业数量?

postgresql - 使用 kubectl apply 命令重新配置 postgres

proxy - 如何通过kubectl代理访问该Kubernetes服务?

amazon-web-services - 是否可以阻止 EKS 上的 kubernetes pod 承担节点的 IAM 角色?

amazon-web-services - AWS EKS 节点组 "Create failed": Instances failed to join the kubernetes cluster

docker - 我如何正确启动以前关闭的kubernetes集群?

windows - Docker for Windows 在更新到版本 2.1.1.0 Edge(或稳定版)后卡在 "Kubernetes is Starting"

docker - k3d 拉取镜像失败 "docker.io/rancher/pause:3.1"