Jobs and CronJobs
Jobs, that is, batch jobs, are stable resources in the batch/v1
API group. They are useful when you need to run a specific number of a particular Pod, and you need guarantees that they'll all successfully complete.
Here are a couple of subtleties worth noting:
- Jobs don't have the concept of desired state.
- Pods that are part of a job are short-lived.
These two concepts separate Jobs from other objects such as Deployments, DaemonSets, and StatefulSets. While those objects keep a specified number of a certain Pod running indefinitely, Jobs manage a specified number of a certain Pod and make sure they complete and exit successfully.
The Job object implements the usual controller and watch loop. If a Pod that the Job object spawns fails, the Job will create another in its place. Once all the Pods managed by a Job complete, the Job itself completes.
Use cases include typical batch-type workloads.
Interestingly, Jobs can be useful...