我已经创建了一个Kubernetes Scheduled Job,它根据其计划每天运行两次。但是,我想手动触发它以进行测试。我该怎么做呢?
ryoqjall1#
@jdf提到的#47538问题现在已经解决了,这现在是可能的。最初的实现可以在here中找到,但是语法已经改变。对于kubectl v1.10.1+,命令为:kubectl create job --from=cronjob/<cronjob-name> <job-name> -n <namespace-name>它似乎是向后兼容旧集群,因为它为我工作的v0.8.x。
kubectl create job --from=cronjob/<cronjob-name> <job-name> -n <namespace-name>
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
euoag5mw3#
不幸的是,上面的例子语法都不能在Google Kubernetes Engine(GCP)中使用,而且GKE文档本身也是错误的。在Kubernetes 1.10.6.gke-2中,工作语法为:
1.10.6.gke-2
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
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>
kubectl delete job <job-name> -n <namespace>
kubectl get cronjobs -n <namespace>
jq6vz3qz5#
除了创建一个新的作业(正如其他答案所建议的那样),目前还没有其他方法来实现这一点。现在可以在这里跟踪kubernetes中的一个功能请求:https://github.com/kubernetes/kubernetes/issues/47538
ejk8hzay6#
在k8s Jmeter 板的此选项卡中,有一个选项可用于手动触发cron作业
e1xvtsh37#
我已经创建了一个小的cmd实用程序来方便地执行此操作,同时还可以挂起和取消挂起cronjobs。https://github.com/iJanki/kubecron
kpbpu0088#
如果要测试作业,请从Cron Job(ScheduledJob)配置创建Job配置,然后使用以下命令手动运行该配置:
kubectl create -f ./job.yaml
8条答案
按热度按时间ryoqjall1#
@jdf提到的#47538问题现在已经解决了,这现在是可能的。最初的实现可以在here中找到,但是语法已经改变。
对于kubectl v1.10.1+,命令为:
kubectl create job --from=cronjob/<cronjob-name> <job-name> -n <namespace-name>
它似乎是向后兼容旧集群,因为它为我工作的v0.8.x。
x7rlezfr2#
您可以基于ScheduledJob创建简单作业。如果您已经运行ScheduledJob,则历史记录中存在作业。
导出以下作业之一:
然后稍微编辑一下yaml,删除一些不必要的字段,然后手动运行它:
euoag5mw3#
不幸的是,上面的例子语法都不能在Google Kubernetes Engine(GCP)中使用,而且GKE文档本身也是错误的。
在Kubernetes
1.10.6.gke-2
中,工作语法为:ymdaylpp4#
您可以随时使用删除作业执行
kubectl delete job <job-name> -n <namespace>
如果您想查看可用的玉米作业列表,请使用
kubectl get cronjobs -n <namespace>
jq6vz3qz5#
编辑-2018年7月:请参阅@pedro_sland的answer,因为此功能现已实现
下面我的原始答案对于低于v1.10.1的旧版本kubectl仍然正确
除了创建一个新的作业(正如其他答案所建议的那样),目前还没有其他方法来实现这一点。现在可以在这里跟踪kubernetes中的一个功能请求:https://github.com/kubernetes/kubernetes/issues/47538
ejk8hzay6#
在k8s Jmeter 板的此选项卡中,有一个选项可用于手动触发cron作业
e1xvtsh37#
我已经创建了一个小的cmd实用程序来方便地执行此操作,同时还可以挂起和取消挂起cronjobs。
https://github.com/iJanki/kubecron
kpbpu0088#
如果要测试作业,请从Cron Job(ScheduledJob)配置创建Job配置,然后使用以下命令手动运行该配置: