创建 CronJobs

CronJob 提供了不同的方式来定义任务,这些任务会运行到完成后停止。您可以使用 CronJob 根据计划多次运行相同的 Job。

定时任务(CronJob)是 Kubernetes 中的一种工作负载控制器。您可以通过 web 控制台或 CLI 创建 CronJob,以定期或重复运行一个非持久性的程序,例如定期备份、定期清理或定期发送电子邮件。

前提条件

获取镜像地址。镜像的来源可以是由平台管理员通过工具链集成的镜像仓库,或来自第三方平台的镜像仓库。

  • 对于前者,管理员通常会将镜像仓库分配给您的项目,您可以使用其中的镜像。如果找不到所需的镜像仓库,请联系管理员进行分配。

  • 如果是第三方平台的镜像仓库,请确保在当前集群中能够直接拉取镜像。

操作步骤

  1. 容器平台,在左侧边栏中导航至 工作负载 > CronJobs

  2. 点击 创建 CronJob

  3. 选择输入 一个镜像,点击 确认

    注意:仅在使用本平台集成的镜像仓库中的镜像时可以通过选择的方式来筛选镜像。例如,集成项目名称如 containers (docker-registry-projectname) 包含了本平台项目名 projectname 和镜像仓库中的项目名 containers

配置基本信息

  1. 定时配置 部分,配置任务执行方式及相关参数。

    执行类型

    • 手动:手动执行需要为每次任务运行明确的手动触发。

    • 定时:定时执行配置以下调度参数:

      参数说明
      触发规则使用 Crontab 语法 定义 cron 调度。CronJob 控制器根据所选时区计算下次执行时间。

      注意
      • 对于 Kubernetes 集群 < v1.25: 不支持时区选择;调度必须使用 UTC。
      • 对于 Kubernetes 集群 ≥ v1.25: 支持时区调度(默认:用户的本地时区)。
      并发策略指定如何处理并发 Job 执行(每个 K8s 规范 可选 Allow, Forbid, 或 Replace)。

    任务历史保留

    • 设置完成任务的保留限制:
      • 历史限制:成功任务历史限制(默认:20)
      • 失败任务:失败任务历史限制**(默认:20)
    • 当保留限制超过时,将首先垃圾回收最旧的任务。
  2. 任务配置 部分,选择作业类型。 CronJob 管理由 Pods 组成的任务。根据工作负载类型配置 Job 模板:

    参数说明
    作业类型选择作业完成模式(非并行固定完成次数的并行索引作业,具体可参见 K8s 作业模式)。
    重试限制设置标记 Job 为失败之前的最大重试次数。

配置 Pods

Pod 部分,请参阅 创建部署 - 配置 Pods

配置容器

容器 部分,请参阅 创建部署 - 配置容器

创建

点击 创建

立即执行

  1. 找到 CronJob 资源:

    • web 控制台容器平台,在左侧边栏中导航至 工作负载 > CronJob
    • CLI:运行
      kubectl get cronjobs -n <namespace>
      
  2. 发起临时执行:

    • web 控制台立即执行
      1. 点击应用列表右侧的垂直省略号(⋮)。
      2. 点击应用详情页面右上角的 操作
    • CLI
      kubectl create job --from=cronjob/<cronjob-name> <job-name> -n <namespace>
      
  3. 监控执行状态:

    状态说明
    等待中Job 已创建但尚未调度
    运行中Job Pod(s) 正在积极执行
    成功所有 Pods 成功完成(退出代码 0)
    失败至少有一个 Pod 终止失败(非零退出代码)
  4. 验证 Job 详情:

    kubectl describe job/<job-name> -n <namespace>
    kubectl logs job/<job-name> -n <namespace>