如何立即运行kubernetes cronjob

如何立即运行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:

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

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派生的作业。