系統(tǒng)中已經(jīng)完成的 Job 通常是不在需要里的,長期在系統(tǒng)中保留這些對象,將給 apiserver 帶來很大的壓力。如果通過更高級別的控制器(例如 CronJobs)來管理 Job,則 CronJob 可以根據(jù)其中定義的基于容量的清理策略(capacity-based cleanup policy)自動清理Job。
TTL 機制
除了 CronJob 之外,TTL 機制是另外一種自動清理已結(jié)束Job(Completed
或 Finished
)的方式:
- TTL 機制由 TTL 控制器提供
- 在 Job 對象中指定
.spec.ttlSecondsAfterFinished
字段可激活該特性
當 TTL 控制器清理 Job 時,TTL 控制器將刪除 Job 對象,以及由該 Job 創(chuàng)建的所有 Pod 對象。
刪除 Job 時,其生命周期函數(shù)將被觸發(fā),例如 finalizer文章來源:http://www.zghlxwxcb.cn/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
:文章來源地址http://www.zghlxwxcb.cn/news/detail-509137.html
- Job
pi-with-ttl
的ttlSecondsAfterFinished
值為 100,則,在其結(jié)束100
秒之后,將可以被自動刪除 - 如果
ttlSecondsAfterFinished
被設置為0
,則 TTL 控制器在 Job 執(zhí)行結(jié)束后,立刻就可以清理該 Job 及其 Pod - 如果
ttlSecondsAfterFinished
值未設置,則 TTL 控制器不會清理該 Job
到了這里,關于k8s控制器之job--第五彈Job的自動清理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!