Most of what we have covered so far has been focused on continuous, long-running processes. Kubernetes also has support for shorter, discrete runs of software. A job in Kubernetes is focused on a discrete run that is expected to end within some reasonably-known timeframe, and report a success or failure. Jobs use and build upon the same construct as the long-running software, so they use the pod specification at their heart, and add the concept of tracking the number of successful completions.
The simplest use case is to run a single pod to completion, letting Kubernetes handle any failures due to a node failure or reboot. The two optional settings you can use with jobs are parallelism and completion. Without specifying parallelism, the default is 1 and only one job will be scheduled at a time. You can specify both values as integers to run a number of jobs in parallel to...