kubernetes - 从 ConfigMap 读取 Kubernetes CronJob 的调度表达式

标签 kubernetes configmap kubernetes-cronjob

我在 Kubernetes 中配置了超过 10 个 CronJobs,并且都按预期正常工作。

现在我计划再添加 20 个 CronJobs。所有作业都从外部资源获取数据,对其进行处理并生成某种报告。

我想将CronJobs的调度表达式配置到ConfigMap中。例如,

kind: ConfigMap
apiVersion: v1
metadata:
  name: scheduler-config
  namespace: test
data:
  job1.schedule.expression: */1 * * * *
  job2.schedule.expression: */5 * * * *
  job3.schedule.expression: */30 * * * *
  job4.schedule.expression: 0 1 * * *
  job5.schedule.expression: 0 0 * * THU

如果可能的话,我想让它更加灵活,例如,如果我用新的表达式更新 ConfigMap,那么 CronJob 应该用新的计划表达式更新,下次它应该按照 ConfigMap 中的新表达式值运行。

最佳答案

正如我在评论中提到的

据我所知ConfigMap用于在容器内设置环境变量或作为卷安装。我认为您不能使用 configmap 在 cronjob 中设置计划。


作为替代方案,您可以使用 helm cronjobs为此并在 values.yaml 中指定时间表.

看看下面使用上面的 helm cronjobs 创建的 cronjobs。

kubectl get cronjob
NAME                     SCHEDULE      SUSPEND   ACTIVE    LAST SCHEDULE   AGE
cold-fly-hello-env-var   * * * * *     False     0         23s             1m
cold-fly-hello-ubuntu    */5 * * * *   False     0         23s             1m
cold-fly-hello-world     * * * * *     False     0         23s             1m

以及他们的日程安排值there , therethere .

关于kubernetes - 从 ConfigMap 读取 Kubernetes CronJob 的调度表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63619195/

相关文章:

kubernetes - 如何在Kubernetes中修补ConfigMap

kubernetes - 是否有 kubernetes cronjob 类型允许单个容器镜像的多个计划?

kubernetes - 在 kubernetes 中创建 pod 所涉及的步骤

kubernetes - 在准备好的 Kubernetes 本地集群上的 Kube 代理中启用 IPVS 模式

kubernetes - 使用 Kubernetes Configmap 将文件保存到容器时如何将 YAML 转换为 JSON

kubernetes - Openshift 4 ConfigMap 二进制文件安装为目录

kubernetes - 这个 cron 作业有什么问题,它没有运行。如何调试它

Kubernetes Cronjob 即使超时也会立即触发 Job

resources - 如何通过一个命令从Helm列表中删除所有资源?

kubernetes - Prometheus - 路由中使用的未定义接收器\"null\"