5.6.2 CronJob的控制机制

CronJob控制器时一个更高级别的资源,它以Job控制器资源为其管控对象,并借助它管理Pod资源对象。因此,要使用类似如下命令来查看某CronJob控制器创建的Job资源对象,其中的标签“mycronjob-jobs”是在创建cronjob-example时为其指定。不过,只有相关的Job对象被调度执行时,此命令才能将其正常列出。可列出的Job对象的数量取决于CronJob资源的.spec.successfulJobsHistoryLimit的属性值,默认为3。

**[terminal]
**[delimiter $ ]**[command kubectl get jobs -l app=mycronjob-jobs]
NAME                         COMPLETIONS   DURATION   AGE
cronjob-example-1600067520   2/1 of 2      26s        4m36s
cronjob-example-1600067640   2/1 of 2      21s        2m36s
cronjob-example-1600067760   2/1 of 2      21s        36s

如果作业重复执行时指定的时间点较近,而作业执行时长(普遍或偶尔)跨国过了两次执行的时间长度,则会出现两个Job对象同时存在的情形。这些Job对象可能会存在无法或不能同时运行的情况,这个时候就要通过.spec.concurrenctPolicy属性控制作业并存的机制,其默认值为“Allow”,即允许前后Job,甚至属于同一个CronJob的更多Job同时运行。其他两个可用值中,“Forbid”用于禁用前后两个Job同时运行,如果前一个尚未结束,后一个则不予启动(跳过)。“Replace”用于让后一个Job取代前一个,即终止前一个并启动后一个。

results matching ""

    No results matching ""