gpt4 book ai didi

kubernetes - 如何立即运行kubernetes cronjob

转载 作者:行者123 更新时间:2023-12-05 06:12:07 32 4
gpt4 key购买 nike

我对 kubernetes 很陌生,在这里我厌倦了一个 cronjob yaml,其中每 1 分钟创建一次 pod。

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 分钟运行一次?

最佳答案

正如评论中所述,CronJobJob 支持。您可以做的是同时使用相同的规范启动 CronjobJob 资源。您可以使用 helm chart or kustomize 方便地做到这一点.

或者,您可以将两个 list 放在同一文件中或将两个文件放在同一目录中,然后使用:

kubectl apply -f <file/dir>

使用此解决方法,初始 Job 开始,然后在一段时间后 Cronjob。此解决方案的缺点是第一个 Job 是独立的,它不包含在 Cronjob 的历史记录中。另一个可能的副作用是,如果第一个 Job 不能足够快地完成其任务,第一个 Job 和第一个 CronJob 可以并行运行。 concurrencyPolicy 不考虑该 Job

来自文档:

A cron job creates a job object about once per execution time of itsschedule. We say "about" because there are certain circumstances wheretwo jobs might be created, or no job might be created. We attempt tomake these rare, but do not completely prevent them.

因此,如果你想让任务执行更严格,也许最好在任务执行之间使用 Bash 包装脚本和 sleep 1,或者设计一个应用程序,在指定的时间间隔后 fork 子进程,创建一个容器镜像并运行它作为部署。

关于kubernetes - 如何立即运行kubernetes cronjob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712257/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com