我已经创建了一个Kubernetes Scheduled Job,根据它的时间表每天运行两次。但是,出于测试目的,我希望手动触发它。我该怎么做呢?
当前回答
kubectl create job --from=cronjob/<cron-job-name> <job-name> -n <namespace>
kubectl delete job <job-name> -n <namespace>
如果您想查看可用的玉米作业列表,请使用kubectl get cronjobs -n <命名空间>
其他回答
您可以基于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
不幸的是,上面的示例语法都不能在谷歌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>
在k8s仪表板的这个选项卡中有一个手动触发cron作业的选项
kubectl create job --from=cronjob/<cron-job-name> <job-name> -n <namespace>
kubectl delete job <job-name> -n <namespace>
如果您想查看可用的玉米作业列表,请使用kubectl get cronjobs -n <命名空间>
@jdf提到的#47538问题现在已经结束,现在是可能的。原始的实现可以在这里找到,但是语法已经改变了。
在kubectl v1.10.1+中,命令如下:
Kubectl create job——from=cronjob/<cronjob-name> <job-name> -n <namespace-name>
它似乎向后兼容旧的集群,因为它在v0.8.x上为我工作。
推荐文章
- Kubectl连续日志
- 我的kubernetes豆荚不断崩溃与“CrashLoopBackOff”,但我找不到任何日志
- 如何从kubectl配置中删除集群和上下文?
- 用Windows任务调度器运行批处理文件
- Kubernetes支持多个环境(Staging、QA、生产等)
- Kubernetes API -获取特定节点上的pod
- 我如何调试“ImagePullBackOff”?
- 如何在Java中安排一个周期性的任务?
- 在Kubernetes中更新configmap时重新启动pod ?
- 为部署的Kubernetes服务获取YAML ?
- 如何运行一次cron,每天晚上10点
- 如何启用Windows Server任务调度器历史记录?
- 如何在kubernetes中切换命名空间
- 位于另一个名称空间中的服务
- 运行计划任务的最佳方式