我已经创建了一个Kubernetes Scheduled Job,根据它的时间表每天运行两次。但是,出于测试目的,我希望手动触发它。我该怎么做呢?
当前回答
您可以基于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
其他回答
如果你想测试作业,从你的Cron作业(ScheduledJob)配置中创建一个作业配置,并使用以下命令手动运行它:
kubectl create -f ./job.yaml
您可以基于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
如果您可以使用kubectl以外的工具,那么K9s CLI是一个非常棒的工具,除了其他特性外,它还具有触发器命令,允许您触发cronjob。
为此,进入K9s界面,使用命令:cronjobs搜索您的cronjob,选择您想要触发的cronjob并键入t。
在底层,它可能使用CronJob配置创建一个Job,就像下面的答案所建议的那样。
在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 <命名空间>
推荐文章
- 如何在gcloud和minikube之间切换kubectl集群
- 如何让容器在Kubernetes上运行?
- 如何手动触发Kubernetes计划作业?
- 如何从Kubernetes复制控制器的所有pod中获取日志?
- 删除Kubernetes pod时重新创建
- 使用/healthz进行应用程序运行状况检查的约定来自哪里?
- Kubernetes Service定义中targetPort和port的区别
- Kubernetes服务外部ip挂起
- Windows版本的cron是什么?
- Java定时器vs ExecutorService?
- 我如何强迫Kubernetes重新拉一张图片?
- 命令删除所有kubernetes命名空间中的所有pod
- 用Windows任务调度程序每x分钟运行一个任务
- 吊舱和部署的区别是什么?
- 入口vs负载均衡器