Kubernetes任务调用Job与CronJob及源码分析( 四 )

在syncOne维护了cronJob的Active列表 , 在遍历cronJob对应的job列表的时候会判断该job是不是应该从Active列表中删除 , 操作完之后会更新cronJob的状态 。
然后会查看当前的cronJob是否已被删除、是否处于suspend状态、判断是否最近有job被调度 , 并获取最后一次调度时间判断是否满足StartingDeadlineSeconds条件等 。
接下来会根据ConcurrencyPolicy来判断是Forbid还是Replace 。 如果是Forbid那么直接略过此次调度 , 如果是Replace那么会删除所有的Active列表,等后面重新创建 。
最后调用CreateJob创建job 。
总结【Kubernetes任务调用Job与CronJob及源码分析】这篇文章我们首先介绍了Job和CronJob的具体使用方法 , 以及其中需要注意的参数配置 , 然后通过源码来解释相应的配置会产生什么样的结果 。 例如job来说 , 如果我们设置的completions小于parallelism , 那么在实际运行的时候实际完成的pod数量是可能超过completions的等等 。 通过源码我们对job以及cronjob也有了一个更好的理解 。