在我的环境中,我有一个服务,它生成具有必要配置的yml
,因此可以与kubectl apply
一起执行该文件以创建pod。我的问题是:我可以生成一个带有指令的yml
文件,以便pod可以在状态完成(status.phase==Succeeded
)时自行删除吗?
目前,我正在用cronjobs解决这个问题。此外,我知道我可以使用kubectl delete pod --field-selector=status.phase==Succeeded --namespace <namespace>
之类的东西,但我想知道它是否可以通过pod的配置文件(yml
)来完成。
这是由服务(构建器)生成的文件,将与kubectl apply -f <yml file>
一起执行:
apiVersion: batch/v1
kind: Job
metadata:
name: order-test
namespace: my-namespace
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: order-test
image: namespace/image:version
env:
- name: example
value: "test"
restartPolicy: Never
backoffLimit: 4
我想在它达到所需状态后自动删除它。
使用作业历史限制.spec.successfulJobsHistoryLimit
和.spec.failedJobsHistoryLimit
字段是可选的。这些字段指定应该保留多少已完成和失败的作业。默认值分别为3和1。将限制设置为0对应于相应类型的作业在完成后不保留。
Ref: https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#jobs-history-limits