如何 手动 触发 Kubernetes 计划 作业 ?

zzlelutf  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(8)|浏览(174)

我已经创建了一个Kubernetes Scheduled Job,它根据其计划每天运行两次。但是,我想手动触发它以进行测试。我该怎么做呢?

ryoqjall

ryoqjall1#

@jdf提到的#47538问题现在已经解决了,这现在是可能的。最初的实现可以在here中找到,但是语法已经改变。
对于kubectl v1.10.1+,命令为:
kubectl create job --from=cronjob/<cronjob-name> <job-name> -n <namespace-name>
它似乎是向后兼容旧集群,因为它为我工作的v0.8.x。

x7rlezfr

x7rlezfr2#

您可以基于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
euoag5mw

euoag5mw3#

不幸的是,上面的例子语法都不能在Google Kubernetes Engine(GCP)中使用,而且GKE文档本身也是错误的。
在Kubernetes 1.10.6.gke-2中,工作语法为:

kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
ymdaylpp

ymdaylpp4#

kubectl create job --from=cronjob/<cron-job-name> <job-name> -n <namespace>

您可以随时使用删除作业执行kubectl delete job <job-name> -n <namespace>
如果您想查看可用的玉米作业列表,请使用kubectl get cronjobs -n <namespace>

jq6vz3qz

jq6vz3qz5#

编辑-2018年7月:请参阅@pedro_sland的answer,因为此功能现已实现
下面我的原始答案对于低于v1.10.1的旧版本kubectl仍然正确

除了创建一个新的作业(正如其他答案所建议的那样),目前还没有其他方法来实现这一点。现在可以在这里跟踪kubernetes中的一个功能请求:https://github.com/kubernetes/kubernetes/issues/47538

ejk8hzay

ejk8hzay6#

在k8s Jmeter 板的此选项卡中,有一个选项可用于手动触发cron作业

e1xvtsh3

e1xvtsh37#

我已经创建了一个小的cmd实用程序来方便地执行此操作,同时还可以挂起和取消挂起cronjobs。
https://github.com/iJanki/kubecron

kpbpu008

kpbpu0088#

如果要测试作业,请从Cron Job(ScheduledJob)配置创建Job配置,然后使用以下命令手动运行该配置:

kubectl create -f ./job.yaml

相关问题