How to Create a Kubernetes Job From a Cron Job

John John (304)
5 minutes

As a Kubernetes user, I find that I often need to trigger a kubernetes cron job manually, outside of its schedule. Fortunately, since the release of Kubernetes 1.10, we're able to specify a cronjob config when creating a kubernetes job manually.


kubectl create job --from=cronjob/<cronjob-name> <job-name>
Posted in these interests:
h/kubernetes7 guides
h/devops7 guides

We typically create a k8s job like this:

kubectl apply -f some-job-config.yaml

This is nice enough, but sometimes we need to launch a job that is already defined in a cronjob config. So rather than copying and pasting the applicable cronjob config into a new file, we can simply use the --from option with kubectl create job.

kubectl create job --from=cronjob/<cronjob-name> <job-name>

The name of the job needs to be unique, and the cronjob name can be found using:

kubectl get cronjob

Helpful note: It's wise to come up with a job naming convention and stick with it. As an example, we could use the name of the cronjob and append the timestamp. Changing naming conventions later can introduce bugs and make it harder to parse jobs.

John John (304)
10 minutes

If you're using Kubernetes, you may find the need to move files to and from containers running on pods.