3.11 CronJob定时任务实战:Kubernetes原生定时任务调度方案引言CronJob是Kubernetes中用于运行定时任务的控制器,基于Job实现。通过CronJob可以在Kubernetes集群中执行周期性任务,如备份、清理、数据同步等。本文将详细介绍CronJob的使用方法和最佳实践。一、CronJob概述1.1 CronJob的作用基于Cron表达式调度周期性执行任务自动创建Job保留历史记录1.2 使用场景定时备份数据清理报告生成数据同步健康检查二、CronJob定义2.1 基本CronJobapiVersion:batch/v1kind:CronJobmetadata:name:hellospec:schedule:"*/1 * * * *"# 每分钟执行jobTemplate:spec:template:spec:containers:-name:helloimage:busybox:latestcommand:["/bin/sh","-c","date; echo Hello from Kubernetes"]restartPolicy:OnFailuresuccessfulJobsHistoryLimit:3failedJobsHistoryLimit:12.2 Cron表达式分钟 小时 日 月 星期 * * * * * # 每分钟 0 * * * * # 每小时 0 0 * * * # 每天午夜 0 0 * * 0 # 每周日午夜 0 0 1 * * # 每月1号午夜三、CronJob实战3.1 定时备份apiVersion:batch/v1kind:CronJobmetadata:name:database-backupspec:schedule:"0 2 * * *"# 每天凌晨2点jobTemplate:spec:template:spec:containers:-name:backupimage:postgres:14-alpinecommand:-/bin/sh--c-|pg_dump -h db-service -U postgres mydb /backup/mydb-$(date +%Y%m%d).sql gzip /backup/mydb-$(date +%Y%m%d).sqlenv:-name/