How to Create a Kubernetes Job From a Cron Job

Tyler Tyler (285)
Total time: 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.

tl;dr;

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

Posted in these interests:

kubernetes
PRIMARY
7 guides
devops
6 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.