如何立即运行kubernetes cronjob
我对kubernetes很陌生,在这里我厌倦了cronjob yaml,在其中每1分钟创建一个豆荚如何立即运行kubernetes cronjob,kubernetes,cron,kubernetes-cronjob,Kubernetes,Cron,Kubernetes Cronjob,我对kubernetes很陌生,在这里我厌倦了cronjob yaml,在其中每1分钟创建一个豆荚 apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
但POD仅在1分钟后创建。是否可以立即运行作业,并在此后每1分钟运行一次作业?如注释
CronJob
中所述,由job
支持。您可以做的就是同时使用相同的规范启动Cronjob
和Job
资源。你可以很方便地使用
或者,您可以将两个清单放在同一个文件或同一目录中的两个文件中,然后使用:
kubectl apply -f <file/dir>
kubectl应用-f
通过此解决方案,初始作业
开始,然后在一段时间后Cronjob
。
此解决方案的缺点是第一个作业
是独立的,它不包括在Cronjob的历史记录中。另一个可能的副作用是,如果作业
不能足够快地完成任务,则第一个作业
和第一个CronJob
可以并行运行<代码>并发策略不考虑该作业
从文件中:
cron作业大约在其任务的每个执行时间创建一个作业对象
日程我们说“关于”是因为在某些情况下
可以创建两个作业,也可以不创建作业。我们试图
让它们变得稀有,但不要完全阻止它们
因此,如果您想让任务执行更严格,可能最好在任务执行之间使用带sleep 1的Bash包装器脚本,或者设计一个在指定间隔后分叉子进程的应用程序,创建一个容器映像并将其作为部署运行。CronJob由Job支持,您可以只运行一个Job。请参阅和@d4nyll.im使用kubectl create命令。但它总是在指定的分钟后启动。如果不清楚,则需要创建CronJob以及从该CronJob派生的作业。