关于kubernetes:k8scronjob

58次阅读

共计 1388 个字符,预计需要花费 4 分钟才能阅读完成。

cronjob:

https://kubernetes.io/zh/docs/concepts/workloads/controllers/cron-jobs/
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

jobs:
https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#writing-a-job-spec



cron job -> (0-2)job -> pod


一个 CronJob 对象相似于 crontab(cron table)文件中的一行。它依据指定的预约打算周期性地运行一个 Job

Cron Job 在每次调度运行工夫内 大略 会创立一个 Job 对象。咱们之所以说 大略,是因为在特定的环境下可能会创立两个 Job,或者一个 Job 都没创立。咱们尝试少产生这种状况,但却不能完全避免。因而,创立 Job 操作应该是 _幂等的_。Job 依据它所创立的 Pod 的并行度,负责重试创立 Pod,并就决定这一组 Pod 的胜利或失败。Cron Job 基本不会去查看 Pod


-- 查看 cronjob
kubectl get cronjob -n niuniu
kubectl get cronjob -n niuniu --watch

---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  namespace: niuniu
  name: autocheckout
  labels:
    app: cron
spec:
  schedule: "*/1 * * * *"
  concurrencyPolicy: Allow
  startingDeadlineSeconds: 300
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:


.spec.startingDeadlineSeconds 字段是可选的。它示意启动 Job 的期限(秒级别),如果因为任何起因而错过了被调度的工夫,那么错过执行工夫的 Job 将被认为是失败的。如果没有指定,则没有期限


并发策略
.spec.concurrencyPolicy 字段也是可选的。它指定了如何解决被 Cron Job 创立的 Job 的并发执行。只容许指定上面策略中的一种:Allow(默认):容许并发运行 Job
    Forbid:禁止并发运行,如果前一个还没有实现,则间接跳过下一个
    Replace:勾销以后正在运行的 Job,用一个新的来替换
留神,以后策略只能利用于同一个 Cron Job 创立的 Job。如果存在多个 Cron Job,它们创立的 Job 之间总是容许并发运行。挂起
.spec.suspend 字段也是可选的。如果设置为 true,后续所有执行都将被挂起。它对曾经开始执行的 Job 不起作用。默认值为 false。Job 历史限度


.spec.successfulJobsHistoryLimit 和 .spec.failedJobsHistoryLimit 
它们指定了能够保留实现和失败 Job 数量的限度。默认没有限度,所有胜利和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,很快就会沉积很多 Job,举荐设置这两个字段的值。设置限度值为 0,相干类型的 Job 实现后将不会被保留。

正文完
 0