系统中已经完成的 Job 通常是不在需要里的,长期在系统中保留这些对象,将给 apiserver 带来很大的压力。如果通过更高级别的控制器(例如 CronJobs)来管理 Job,则 CronJob 可以根据其中定义的基于容量的清理策略(capacity-based cleanup policy)自动清理Job。
TTL 机制
除了 CronJob 之外,TTL 机制是另外一种自动清理已结束Job(Completed
或 Finished
)的方式:
- TTL 机制由 TTL 控制器提供
- 在 Job 对象中指定
.spec.ttlSecondsAfterFinished
字段可激活该特性
当 TTL 控制器清理 Job 时,TTL 控制器将删除 Job 对象,以及由该 Job 创建的所有 Pod 对象。
删除 Job 时,其生命周期函数将被触发,例如 finalizer文章来源:https://www.toymoban.com/news/detail-509137.html
apiVersion: batch/v1
kind: Job
metadata:
name: pi-with-ttl
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
字段解释 ttlSecondsAfterFinished
:文章来源地址https://www.toymoban.com/news/detail-509137.html
- Job
pi-with-ttl
的ttlSecondsAfterFinished
值为 100,则,在其结束100
秒之后,将可以被自动删除 - 如果
ttlSecondsAfterFinished
被设置为0
,则 TTL 控制器在 Job 执行结束后,立刻就可以清理该 Job 及其 Pod - 如果
ttlSecondsAfterFinished
值未设置,则 TTL 控制器不会清理该 Job
到了这里,关于k8s控制器之job--第五弹Job的自动清理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!