Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Kubernetes cronjob的计划或如何手动启动它?_Cron_Kubectl_Kubernetes - Fatal编程技术网

如何更改Kubernetes cronjob的计划或如何手动启动它?

如何更改Kubernetes cronjob的计划或如何手动启动它?,cron,kubectl,kubernetes,Cron,Kubectl,Kubernetes,有没有一种简单的方法来更改kubernetes cronjob的日程安排,比如kubectl change cronjob my cronjob“10 10***”?或者不需要执行kubectl apply-f deployment.yml的任何其他方式?后者在复杂的CI/CD设置中可能非常麻烦,因为通常不需要手动编辑部署yaml,尤其是在构建过程中从模板创建文件时 或者,是否有办法手动启动cronjob?例如,一个作业计划在22小时后启动,但我现在想手动触发它一次,而不更改cron计划(用于测

有没有一种简单的方法来更改kubernetes cronjob的日程安排,比如
kubectl change cronjob my cronjob“10 10***”
?或者不需要执行
kubectl apply-f deployment.yml的任何其他方式?后者在复杂的CI/CD设置中可能非常麻烦,因为通常不需要手动编辑部署yaml,尤其是在构建过程中从模板创建文件时


或者,是否有办法手动启动cronjob?例如,一个作业计划在22小时后启动,但我现在想手动触发它一次,而不更改cron计划(用于测试或初始运行)?

您可以通过修补来仅更新资源的选定字段

patch -h                     
Update field(s) of a resource using strategic merge patch, a JSON merge patch, or a JSON patch.           

JSON and YAML formats are accepted.

Please refer to the models in
https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html
to find if a field is mutable.
如参考意见中所述:

kubectl patch cronjob my-cronjob -p '{"spec":{"schedule": "42 11 * * *"}}'
此外,在当前的kubectl版本中,要启动已声明的cronjob的一次性执行,您可以手动创建符合cronjob规范的作业,方法如下:

kubectl create job --from=cronjob/mycron

我有一个朋友开发了一个kubectl插件,正好回答了这个问题
它接受一个现有的cronjob,然后从中创建一个job。


查看自述文件以获取安装说明。

k8s的最新版本(从1.10开始)支持以下命令:

$kubectl创建作业我的一次性作业--from=cronjobs/my cronjob


Source已解决此问题。

是否有可能直接提供命令?供将来参考和其他人在谷歌上搜索。谢谢:-)您想将此整合到您的答案中吗
kubectl修补我的cronjob-p'{“spec”:{“schedule”:“42 11***”}
?您可以将其作为作业(而不是cronjob)运行,它将被立即计划并将运行到完成。使用@smcatepillar建议,但必须修改为类似
kubectl修补cronjob-my-cronjob的东西--“patch'{“spec”:{“schedule”:“42 11***”}