访问 Kubertes CronJob 内的预定运行时间

mwa*_*way 5 kubernetes kubernetes-cronjob

我正在尝试使用 Kubernetes 运行 cron 作业。该作业执行一个程序,该程序根据作业的计划开始时间执行一些计算。我的程序如何在执行期间访问该值?

Max*_*bur 1

选项 1(最简单):将相同的值放入作业容器环境变量中。我假设您使用 helm 或类似机制进行安装,因此应该很容易schedule在两个地方重用变量。

Role选项 2:使用,RoleBinding和的组合ServiceAccount,然后使用kubectl/language k8s client检索 cronjob(如果命名空间中有多个,您将需要知道它的名称)并从其参数获取计划。

选项 3: https: //kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/这是 1 的变体,但使用了 resourceFieldRef。不确定您是否可以引用 cronjob 资源:(

  • 我不确定这是否回答了原发帖者的问题。他不想要时间表;他想要。他想知道每项工作的预定(不一定是开始)时间。例如,假设 CronJob 计划在周一晚上 11 点运行。理想情况下,我们可以将该时间作为环境变量公开给作业的容器。这意味着,如果作业失败并在周二凌晨 1 点重新启动,则暴露给容器的日期仍然是原始计划时间。假设它按时开始,这可能可以通过解析作业名称来实现? (4认同)