What is CronJob in Kubernetes: Definition and Usage
CronJob in Kubernetes is a resource that runs jobs on a scheduled time, similar to the Linux cron system. It automatically creates Jobs at specified intervals to perform tasks like backups or reports.How It Works
A CronJob in Kubernetes works like a timer that triggers tasks at set times or intervals. Imagine setting an alarm clock that rings every morning to remind you to water plants. Similarly, a CronJob triggers a Job to run at scheduled times.
Under the hood, Kubernetes watches the schedule you set in the CronJob and creates a new Job object each time the schedule matches. The Job then runs a pod to perform the task, such as running a script or backup. Once the task finishes, the pod stops.
This system helps automate repetitive tasks without manual intervention, ensuring they run reliably on time inside your Kubernetes cluster.
Example
This example shows a CronJob that prints the current date every minute.
apiVersion: batch/v1 kind: CronJob metadata: name: hello-cron spec: schedule: "* * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo Hello from the Kubernetes CronJob restartPolicy: OnFailure
When to Use
Use a CronJob when you need to run tasks repeatedly at fixed times or intervals. Common uses include:
- Backing up databases or files regularly
- Sending periodic reports or notifications
- Cleaning up temporary files or logs
- Running batch jobs or data processing tasks on schedule
CronJobs help automate these tasks inside Kubernetes without needing external schedulers or manual triggers.
Key Points
- CronJob schedules Jobs to run at specific times using cron syntax.
- Each scheduled run creates a new Job and pod to perform the task.
- Useful for automating repetitive tasks inside Kubernetes clusters.
- Supports flexible scheduling like every minute, hourly, daily, or custom intervals.