A Kubernetes Job is a controller object that represents a finite task. Jobs differ from other controller objects in that Jobs manage a task as it runs to completion, rather than managing a desired state such as in Deployments, ReplicaSets, and StatefulSets do. When a specified number of successful completions is reached, the Job is complete. Kubernetes Jobs are used when you want to create pods that will do a specific task and then exit.
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
A CronJob creates Jobs on a repeating schedule. The automated Jobs run like Cron tasks on a Linux or UNIX system.
CronJobs are useful for creating periodic and recurring tasks, like running backups or sending emails. CronJobs can also schedule individual tasks for a specific time, such as if you want to schedule a job for a low activity period.
A CronJob creates a Job object once per execution time of its schedule. The .spec.successfulJobsHistoryLimit
and .spec.failedJobsHistoryLimit
fields specify how many completed and failed jobs should be kept. By default, they are set to 3 and 1 respectively.
#kubernetes #jobs #monitoring