CronJob管理
用户可以通过表单方式基于镜像创建定时任务,也可以通过百度智能云提供的 YAML 文件模板创建和修改定时任务,对定时任务关联的容器组(Pod)、事件等进行控制管理。
CronJob 简介
Cron Job 类似于 Linux 系统中的 crontab,在指定的时间周期运行指定的任务(job),即:
- 在给定时间点运行一次
- 在给定时间点周期性地运行
典型使用场景:
- 在给定的时间点调度 Job 运行,例如:5 min 后清理日志文件等
- 创建周期性运行的 Job,例如:每隔 1h 进行数据库备份等
查看定时任务列表
进入 "产品服务>容器引擎CCE",选择集群,点击 "工作负载>定时任务",进入定时任务页面。 默认选择最新的CCE集群,然后选择该集群下的”default“命名空间,加载该命名空间下的所有定时任务,内容包括:
- 列表数据:显示所有定时任务的列表信息,及新建、删除、修改
新建定时任务
用户可以选择通过表单形式或者通过 yaml 形式创建新的定时任务。
(1)通过表单形式创建:
- 点击 "+创建定时任务";
- 基本信息:填写工作负载名称,选择命名空间、工作负载类型,按需添加K8S标签和注释;
- 容器配置:填写容器名称,选择镜像地址、版本,调整容器配额,申请加速卡资源点击加速卡资源申请开关并配置,新增容器配置点击 “+添加容器”;
- 高级设置-任务配置:配置定时规则、定时任务并发策略、定时超时时间、重试最大次数、任务超时时间、重启策略等;
- 高级设置-调度策略:定制pod和节点的调度策略
- 点击“完成”,返回创建成功信息,完成创建。
(2)通过 yaml 形式创建:
- 选择命名空间,填写 yaml 文件,点击确定。
- 模板类型:可使用示例模板或我的模板创建。
- 复制:复制当前 yaml 文件的内容
- 取消:返回列表页
字段解释
调度:
spec.schedule
字段,是 cronjob 的必需的字段,值为 Cron 格式的字符串,例如:0 * * * *
,或者 @hourly
,kubernetes 会按照该字段规定的调度时间创建并运行 Job
挂起:
spec.suspend
字段,可选字段,默认值为 false
。如果设置为 true
,后续所有 Job 的执行将被挂起
并发策略:
spec.concurrencyPolicy
字段:可选字段,默认值为 Allow
。指定被 CronJob 创建的 Job 如何并发执行。只允许指定以下策略的一种:
- Allow:允许并发运行 Job,如果前一个还没有完成,到了当前 Job 该运行时,运行当前 Job
- Forbid:禁止并发运行,如果前一个还没有完成,到了当前 Job 该运行时,则直接跳过
- Replace:取消当前正在运行的 Job,用一个新的 Job 来替换
Job 历史限制
.spec.successfulJobsHistoryLimit
和 .spec.failedJobsHistoryLimit
这两个字段是可选的。它们指定了可以保留完成和失败 Job 数量的限制。
默认没有限制,所有成功和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,很快就会堆积很多 Job,推荐设置这两个字段的值。设置限制值为 0,相关类型的 Job 完成后将不会被保留。
查看定时任务详情
点击列表页任何一行的定时任务名称,即可进入定时任务详情页,详情页内容包括:
- 定时任务详情:包括基本信息、容器配置
- 关联任务
- 调度策略
- 事件
修改定时任务
在定时任务列表页面,点击需要修改的定时任务行中的“编辑YAML”按钮,完成修改后,点击“更新”提交。
删除定时任务
在定时任务列表页面,找到要删除的定时任务,点击“更多”后再点击“删除”按钮,确认信息后,点击“确认”。
说明: 目前仅支持单个删除。