定时任务CronJob用于创建周期性以及重复性的任务,例如执行备份操作或者发送邮件。Job负责批量处理短暂的一次性任务,即仅执行一次任务,而CronJob则是基于时间间隔重复调度的Job。本文介绍如何创建定时任务CronJob。
通过控制台创建CronJob
使用镜像创建CronJob
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在定时任务页面右上角,单击使用镜像创建。
设置创建CronJob的参数。
在应用基本信息配置向导页面设置应用基本信息。关于参数的详细描述,请参见步骤五:设置应用基本信息。
在容器配置配置向导页面设置容器信息。关于参数的详细描述,请参见容器配置。
在高级配置配置向导页面完成CronJob的高级参数的设置。
分类
参数
描述
定时任务
定时规则
您可以按小时、按天、按星期、按月,或者使用Cron表达式设置定时规则。
关于更多Cron表达式说明,请参见Cron Expressions。
并发策略
您可以设置以下三种并发策略:
Allow:允许并发运行任务,会抢占集群资源。
Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个任务。
Replace:已到新任务创建时间点,但前一个任务还未完成,新的任务会取代前一个任务。
任务记录
可以设置保留执行成功或执行失败的任务个数,设置为0表示不保留。
任务设置
成功运行的Pod数
关于任务设置的参数描述,请参见任务配置。
并行运行的Pod数
超时时间
重试次数
重启策略
标签和注解
Pod标签
为Pod设置标签的名称和值。
说明标签名称长度为1~253字符,只能包含大小写字母、数字、短划线(-)、下划线(_)和小数点(.)。
Pod注解
为Pod设置注解的名称和值。
说明注解名称长度为1~253字符,只能包含大小写字母、数字、短划线(-)、下划线(_)和小数点(.)。
单击创建。
成功创建定时任务后,在定时任务列表中可以查看新创建的定时任务。
使用YAML创建CrobJob
在定时任务页面右上角,单击使用YAML创建资源。
在创建页面,在模板区域编辑模板信息。
单击创建。
通过kubectl命令行创建CronJob
在使用kubectl创建CronJob前,您需要先创建集群,并下载kubectl工具,然后使用kubectl命令连接集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
创建CronJob涉及的主要参数如下:
参数 | 描述 |
.spec.schedule | 必选参数。指定任务运行周期,格式同Cron schedule。 |
.spec.jobTemplate | 必选参数。指定需要运行的任务,格式同Job patterns。 |
.spec.suspend | 可选参数。通过将 这个设置不会影响CronJob已经开始执行的任务。 说明 在调度时间内挂起的执行都会被统计为错过的任务。当CronJob将 |
.spec.startingDeadlineSeconds | 可选参数。指定任务开始的截止期限。 |
.spec.concurrencyPolicy | 可选参数。指定任务的并发策略,支持Allow、Forbid和Replace三个选项:
|
本文以创建一个名为hello的CronJob为例,说明如何使用Kubectl创建CronJob。
保存以下YAML内容至cronjob.yaml文件中。
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
执行以下命令创建CronJob。
kubectl create -f cronjob.yaml
当输出
cronjob.batch/hello created
时,则说明成功创建定时任务CronJob。
相关操作
创建完定时任务后,您可以进行以下操作:
在定时任务名称右侧的操作列中,单击详情查看定时任务的基本信息,包括任务列表、事件。
在定时任务名称右侧的操作列中,选择
、更多 > 伸缩、 ,查看定时任务的YAML信息、修改并行运行的Pod数、删除任务。
相关文档
关于CronJob的更多信息,请参见CronJob。