# K8s 计划任务 Job、Cronjob
# 1. Job 配置参数详解
| |
| apiVersion: batch/v1 |
| kind: Job |
| metadata: |
| labels: |
| job-name: echo |
| name: echo |
| namespace: default |
| spec: |
| |
| |
| backoffLimit: 4 |
| completions: 1 |
| parallelism: 1 |
| template: |
| spec: |
| containers: |
| - name: echo |
| image: busybox |
| imagePullPolicy: IfNotPresent |
| command: |
| - sh |
| - -c |
| - echo "Hello Job" |
| restartPolicy: Never |
| |
| [root@k8s-master01 ~] |
| NAME STATUS COMPLETIONS DURATION AGE |
| echo Complete 1/1 70s 2m5s |
| |
| [root@k8s-master01 ~] |
| NAME READY STATUS RESTARTS AGE |
| echo-564c8 0/1 Completed 0 2m10s |
| |
| [root@k8s-master01 ~] |
| Hello Job |
- backoffLimit::如果任务执行失败,失败多少次后不再执行
- completions:有多少个 Pod 执行成功,认为任务是成功的,默认为空和 parallelism 数值一样
- parallelism:并行执行任务的数量,如果 parallelism 数值大于 completions 数值,只会创建 completions 的数量;如果 completions 是 4,并发是 3,第一次会创建 3 个 Pod 执行任务,第二次只会创建一个 Pod 执行任务
- ttlSecondsAfterFinished:Job 在执行结束之后(状态为 completed 或 Failed)自动清理。设置为 0 表示执行结束立即删除,不设置则不会清除,需要开启 TTLAfterFinished 特性
# 2. CronJob 配置参数详解
| |
| apiVersion: batch/v1 |
| kind: CronJob |
| metadata: |
| name: hello |
| spec: |
| schedule: "*/1 * * * *" |
| concurrencyPolicy: Allow |
| failedJobsHistoryLimit: 10 |
| successfulJobsHistoryLimit: 10 |
| |
| jobTemplate: |
| spec: |
| template: |
| spec: |
| containers: |
| - name: hello |
| image: busybox |
| command: |
| - sh |
| - -c |
| - date; echo Hello from the Kubernetes cluster |
| restartPolicy: OnFailure |
| |
| [root@k8s-master01 ~] |
| NAME SCHEDULE TIMEZONE SUSPEND ACTIVE LAST SCHEDULE AGE |
| hello */1 * * * * <none> False 0 6s 81s |
| |
| [root@k8s-master01 ~] |
| NAME STATUS COMPLETIONS DURATION AGE |
| hello-29084454 Complete 1/1 4s 72s |
| hello-29084455 Complete 1/1 5s 12s |
| |
| [root@k8s-master01 ~] |
| NAME READY STATUS RESTARTS AGE |
| hello-29084454-hwv7p 0/1 Completed 0 78s |
| hello-29084455-vf99w 0/1 Completed 0 18s |
| |
| [root@k8s-master01 ~] |
| Sat Apr 19 12:55:02 UTC 2025 |
| Hello from the Kubernetes cluster |
- apiVersion: batch/v1beta1 #1.21+ batch/v1
- schedule:调度周期,和 Linux 一致,分别是分时日月周。
- restartPolicy:重启策略,和 Pod 一致。
- concurrencyPolicy:并发调度策略。可选参数如下:
- Allow:允许同时运行多个任务。
- Forbid:不允许并发运行,如果之前的任务尚未完成,新的任务不会被创建。
- Replace:如果之前的任务尚未完成,新的任务会替换的之前的任务。
- suspend:如果设置为 true,则暂停后续的任务,默认为 false。
- successfulJobsHistoryLimit:保留多少已完成的任务,按需配置。
- failedJobsHistoryLimit:保留多少失败的任务。
本文出自于:https://edu.51cto.com/course/23845.html