我创建了一个Kubernetes Scheduled Job,它根据日程安排每天运行两次。但是,我想手动触发它以进行测试。我怎样才能做到这一点?
我创建了一个Kubernetes Scheduled Job,它根据日程安排每天运行两次。但是,我想手动触发它以进行测试。我怎样才能做到这一点?
Answers:
您可以基于ScheduledJob创建一个简单的作业。如果您已经运行了ScheduledJob,则历史记录中有作业。
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
导出以下作业之一:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
然后稍微编辑一下Yaml,删除一些不必要的字段并手动运行它:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
字段,您可以通过此命令轻松删除它们sed -i '/uid:.*/d' my_job.yaml
编辑-2018年7月:请参阅@pedro_sland的答案,因为此功能现已实现
对于低于v1.10.1的较旧版本的kubectl,我下面的原始答案仍然正确
================================================== ======================
除了创建新工作(如其他答案所建议的那样)外,目前尚无此方法。现在是kubernetes的一项功能请求,可以在这里进行跟踪:https : //github.com/kubernetes/kubernetes/issues/47538
为了方便起见,我创建了一个小的cmd实用程序,还可以暂停和取消暂停cronjobs。
在k8s信息中心的此标签中,有一个选项可以手动触发cron作业
gcloud components install kubectl
然后kubernetes.io/docs/tasks/tools/install-kubectl