CronJob Controller

CronJob Controller 是 Kubernetes 中专门用于管理定时任务的控制器。它的作用是在指定的时间或周期性地创建 Job,从而实现自动化的定时任务执行。


🧩 CronJob Controller 的职责

  • 定时调度

    👉 根据用户定义的时间规则(Cron 表达式),周期性地创建 Job。

  • 自动化任务
    👉 常用于日志清理、数据备份、定期报告生成等场景。

  • 任务管理
    👉 每次触发时都会创建一个新的 Job,由 Job Controller 保证任务完成。

  • 失败重试
    👉 如果某次任务失败,Job Controller 会负责重试,直到任务成功或达到限制。


📌 类比理解

  • CronJob Controller = 定时项目经理
    • 它每天按时安排工人(Pod)去完成任务。
    • 比如每天凌晨 2 点清理仓库,或者每周一生成报表。
    • 每次任务完成后,工人就下班,不会长期驻守。

📝 示例配置

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello-cron
spec:
  schedule: "*/1 * * * *"   # 每分钟执行一次
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from CronJob
          restartPolicy: OnFailure

👉 这个 CronJob 会每分钟运行一次,打印时间和一条消息。


⚠️ 注意事项

  • 时间规则:使用标准的 Cron 表达式(如 "0 2 * * *" 表示每天凌晨 2 点)。
  • 任务清理:需要配置 successfulJobsHistoryLimit 和 failedJobsHistoryLimit 来避免历史任务过多。
  • 与 Job 的关系:CronJob Controller 本身不执行任务,它只是定时创建 Job,由 Job Controller 保证任务完成。

💡 总结

  • CronJob Controller 是 Job 的定时调度器。
  • 它通过 Cron 表达式周期性创建 Job,实现自动化任务。
  • 常用于 日志清理、数据备份、周期性计算 等场景。
posted @ 2026-05-28 11:15  Donaver  阅读(16)  评论(0)    收藏  举报