O comportamento padrão de um Job é executar o workload em um único Pod e esperar uma única successful completion. Isto é o que o Kubernetes chama de non-parallel Job. Internamente, este comportamento é definido por spec.template.spec.completions e spec.template.spec.parallelism cada um deles com o valor 1.

O comando abaixo demonstra os atributos completions e parallelism citados.

$ kubectl get jobs counter -o yaml | grep -C 1 "completions"
  completions: 1
  parallelism: 1

Você pode personalizar qualquer um destes parâmetros para adequar as necessidades do seu caso de uso. Supondo que você queira que o workload seja executado com sucesso múltiplas vezes, então você incrementa o valor de spec.template.spec.completions para pelo menos 2. As vezes você possui um workload que pode ser executado em paralelo por múltiplos Pods, nestes casos basta incrementar o valor de spec.template.spec.parallelism.

Type spec.completions spec.parallelism Description
Non-parallel with one completion count 1 1 Completes as soon as its Pod terminates successfully.
Parallel with a fixed completion count >= 1 >= 1 Completes when specified number of tasks finish successfully.
Parallel with worker queue unset >= 1 Completes when at least one Pod has terminated successfully and all Pods are terminated.

Documentação Kubernetes

Job

Referência de atributos JobSpec para tuning de completions e parallelism.