定时任务

定时任务 (CronJob) 对于创建周期性和重复性任务非常有用,例如运行备份或发送电子邮件。定时任务还可以在特定时间或间隔执行单个任务,例如在集群可能处于空闲状态时执行任务。

有关更多信息,请参见 Kubernetes 官方文档

准备工作

您需要创建一个企业空间、一个项目以及一个用户 (project-regular)。必须邀请该用户至该项目中并赋予 operator 角色。有关更多信息,请参见创建企业空间、项目、用户和角色

创建定时任务

步骤 1:打开仪表板

project-regular 身份登录控制台。转到项目的任务页面,然后在定时任务选项卡下点击创建

步骤 2:输入基本信息

您可以参考下面的说明在每个字段中输入基本信息。完成操作后,点击下一步

  • 名称:定时任务的名称,也是唯一标识符。

  • 别名:定时任务的别名,使资源易于识别。

  • 定时计划:按照给定的时间计划运行任务。语法参照 CRON。KubeSphere 中提供了一些预置 CRON 语句以简化输入。该字段由 .spec.schedule 指定。对于此定时任务,输入 */1 * * * *,这意味着它每分钟运行一次。

    类型CRON
    每小时0 * * * *
    每天0 0 * * *
    每周0 0 * * 0
    每月0 0 1 * *
  • 高级设置

    • 最大启动延后时间(s):由清单文件中的 .spec.startingDeadlineSeconds 指定,此可选字段表示如果由于任何原因错过计划时间,定时任务启动所需的最大秒数。错过执行的定时任务将被计为失败。如果未指定此字段,则此定时任务没有启动期限。
    • 成功任务保留数量:由清单文件中的 .spec.successfulJobsHistoryLimit 指定,此字段表示要保留的定时任务执行成功的次数,用于区分显式零和未指定这两种情况。默认值为 3。
    • 失败任务保留数量:由清单文件中的 .spec.failedJobsHistoryLimit 指定,此字段表示要保留的定时任务执行失败的次数,用于区分显式零和未指定这两种情况。默认值为 1。
    • 并发策略:由 .spec.concurrencyPolicy 指定,它表示如何处理任务的并发执行:
      • 同时运行任务 (默认值):允许定时任务并发运行。
      • 跳过新任务:禁止并发运行,如果前一个运行还没有完成,则跳过下一个运行。
      • 跳过旧任务:取消当前正在运行的任务,用一个新的来替换。

备注

您可以在右上角开启编辑 YAML,查看此定时任务的 YAML 格式清单文件。

步骤 3:定时任务设置(可选)

请参考任务

步骤 4:设置容器组

  1. 点击容器下的添加容器镜像,在搜索栏中输入 busybox,然后按回车键。

  2. 向下滚动到命令然后在参数框中输入 /bin/sh,-c,date; echo "KubeSphere!"

  3. 点击 完成镜像设置,然后点击下一步继续。

    备注

    • 此示例定时任务输出 KubeSphere。有关设置镜像的更多信息,请参见容器组设置
    • 有关重启策略的更多信息,请参见任务
    • 您可以跳过本教程的存储设置高级设置。有关更多信息,请参见部署一文中的挂载持久卷配置高级设置

步骤 5:检查结果

  1. 在最后一步高级设置中,点击创建完成操作。如果创建成功,定时任务列表中将添加一个新条目。此外,您还可以在任务选项卡下查看任务。

  2. 定时任务选项卡下,点击此定时任务,然后转到任务记录选项卡,您可以在其中查看每个执行记录的信息。由于成功任务保留数量字段设置为 3,因此这里显示定时任务成功执行 3 次。

  3. 点击任意记录,您将转到该任务的详情页面。

  4. 资源状态中,您可以检查容器组状态。点击右侧的 icon,然后点击 icon 可以检查容器日志,如下所示,该日志显示预期输出。

定时任务操作

在定时任务详情页面上,您可以在创建定时任务之后对其进行管理。

  • 编辑信息:编辑基本信息,但无法编辑该定时任务的名称
  • 暂停/启动:暂停或启动该定时任务。暂停定时任务将告知控制器暂停后续执行任务,但已经启动的执行不受影响。
  • 编辑 YAML:编辑该定时任务的 YAML 文件配置。
  • 删除:删除该定时任务,然后返回定时任务列表页面。

任务记录

点击任务记录选项卡查看定时任务的执行记录。

元数据

点击元数据选项卡查看定时任务的标签和注解。

事件

点击事件选项卡查看定时任务的事件。

通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。