How to trigger a Kubernetes cronjob manually-手动触发一个cronjob

What should you do when you’ve developed and installed a cron job for your Kubernetes application, and you need to test it? When writing classic cron jobs in Unix, it’s obvious how to test the job- just manually run the command specified in the cron file. However, it’s not as obvious how to do this in Kubernetes.

We encountered this problem not long ago while setting up a daily PostgreSQL backup job for one of our projects. Triggering a CronJob manually was difficult or impossible in older versions of Kubernetes, but since K8S 1.10 it can be done like this:

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

For example, if the name of your cronjob is “pgdump”, then you might run:

kubectl create job --from=cronjob/pgdump pgdump-manual-001

To see a list of cron jobs, run “kubectl get cronjob”.

The job creates a pod that runs to completion. You can review the command output by using kubectl to show pod logs.

Further reading

The official Kubernetes docs are here: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#-em-job-em-

The thread discussing this Kubernetes feature is here: https://github.com/kubernetes/kubernetes/issues/47538

 

实例配置:

[root@compass-user-hd-master3]:~# kubectl create job tmp-daily-report-job-02 --from=cronjob/job-1119051325-app-v1-0  -n data-infra
NAME                      AGE
tmp-daily-report-job-02   0s


[root@compass-user-hd-master3]:~# kubectl get pod  -n data-infra -o wide

tmp-daily-report-job-02-49mbv                 1/1       Running            0          6s        192.168.73.194   kube-node-192-168-0-246

  

上一篇:k8s的 Job/CronJob资源对象及添加api版本


下一篇:Kubernetes之Job与CronJob