【发布时间】:2020-12-16 12:38:22
【问题描述】:
我在 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 作为替代方案?
-
我不太清楚你在问什么。使用 configmap 能给你带来什么?为什么不直接在相应的 cronjob 中更新
spec.schedule? -
我有很多 cronjobs,更新每个 cronjob 的 spec.schedule 非常耗时,如果我可以将所有调度程序放在一个配置中并在需要时应用它会更好。
-
你可以编写一个小程序来监听 configmap 的变化,当它收到通知时,它会以编程方式重新配置所有的 cronjobs。
标签: kubernetes configmap kubernetes-cronjob