是否也可以在部署时触发 kubernetes cronjob?

问题描述

我有一个简单的 cronjob,每 10 分钟运行一次:

apiVersion: batch/v1beta1
kind: CronJob
Metadata:
  name: myjob
spec:
  schedule: "*/10 * * * *" #every 10 minutes
  successfulJobsHistoryLimit: 1
  FailedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: job
            image: image
            imagePullPolicy: Always
          restartPolicy: OnFailure

它确实每 10 分钟运行一次,但我希望它在我部署 cronjob 时第一次运行。有可能吗?

解决方法

您可以有一次 CronJob 触发计划的 CronJob:

export default <variableNameHere>

Source

在创建计划的 CronJob 后需要运行一次 CronJob,并且其映像需要包含 kubectl 二进制文件。可以通过将 ServiceAccount 链接到一次性 CronJob 来提供在容器内运行 kubectl 所需的 Api 服务器权限。