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

问题描述

我在Kubernetes中配置了10个以上的CronJob,它们都按预期运行。

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

我想将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中指定计划。

看看用上方头盔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

他们的日程安排很赞theretherethere

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...