千家信息网

k8s中的cronJob是什么

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,本篇内容主要讲解"k8s中的cronJob是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"k8s中的cronJob是什么"吧!一.cronJob1.
千家信息网最后更新 2024年11月25日k8s中的cronJob是什么

本篇内容主要讲解"k8s中的cronJob是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"k8s中的cronJob是什么"吧!

一.cronJob

1. doc

https://kubernetes.io/zh/docs/concepts/workloads/controllers/cron-jobs/#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6

2.参数深入理解

1) startingDeadlineSeconds 看文档

2) concurrencyPolicy

  • Allow(默认):允许并发运行 Job ,即:job 错过执行时间(可能是container crashoff,可能是job supend,或者其他),当再次启动cronJob 时,会根据schedule 计算 miss 的job ,与当前job 并行执行

  • Forbid :old job 正在运行,则 直接跳过新job,不会创建新job...如果用 kubectl get jobs -n namespace 查看该cronJob 下的jobs ,会发现只要old job 运行,不会有新的job 创建,不论schedule 错过几次

  • Replace:如果一个新的Job创建时,正在运行一个旧Job,那么CronJob controller会使用这个新Job替代正在运行的旧Job

3) failedJobsHistoryLimit: 0
successfulJobsHistoryLimit: 3

cronjob 中保存失败或者成功job 的个数

注意:successfulJobsHistoryLimit 保存completed 和running 的job 个数

二. job 参数

When a Job completes, no more Pods are created, but the Pods are not deleted either

terminal or clean up job

1. kubectl 删除job,并将其创建的所有pod 一并删除

2. backoffLimit pod 或是container 的 restartPolicy 不是never 的情况下,当重启次数达到limit值时,job被标记为失败,并且所有运行的pod 都将被终止

3. activeDeadlineSeconds 当一个job 的运行时间达到 activeDeadlineSeconds 时,所有运行的pod 都会被终止,并且该job faild ,因为 DeadlineExceeded.

注意:

  • 该参数能指定job 的运行期限,超过期限的job 和其创建的pod 随即被清理,解除系统资源占用,但是也会将cronjob 的调度信息同时清除,如下图,last schedule ,age 和 schedule 对不上

  • activeDeadlineSeconds 优先级 高于 backoffLimit

4.

ttlSecondsAfterFinished: 100

需要开启TTLAfterFinished ,k8s 默认关闭

到此,相信大家对"k8s中的cronJob是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0