定时任务

定时任务 (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 * *
  • 高级设置(执行参数)

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

备注

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

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

请参考任务

步骤 4:设置镜像

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

    输入 busybox

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

    启动命令

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

    完成镜像设置

    备注

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

步骤 5:检查结果

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

    定时任务列表

    任务列表

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

    执行记录

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

    任务详情页面

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

    容器日志-1

    容器日志-2

定时任务操作

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

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

定时任务操作


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