Kubernetes CronJob 简介
CronJob 是 Kubernetes 中用于执行周期性任务的资源对象,其设计理念类似于 Linux 系统中的 crontab。它允许你在指定的时间周期内自动运行指定的 Pod 任务。
需要注意的是,早期版本(如 K8s 1.5)曾使用 batch/v2alpha1 API,目前生产环境推荐使用稳定的 batch/v1 版本。
核心配置说明
在定义 CronJob 时,主要关注以下几个关键参数:
- schedule:指定任务运行的周期,格式遵循标准的 Cron 表达式。
- jobTemplate:定义需要运行的 Job 模板,包含 Pod 的具体规格。
- startingDeadlineSeconds:设置任务开始的截止期限,若错过该时间则跳过本次执行。
- concurrencyPolicy:控制并发策略,支持 Allow(允许并发)、Forbid(禁止并发)和 Replace(替换旧实例)三种模式。
实战示例
下面是一个完整的 YAML 配置文件示例,演示如何创建一个每 1 分钟执行一次的 Hello World 任务:
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
创建任务后,可以通过以下命令验证状态:

