【问题标题】:Access scheduled run time inside Kubertes CronJob访问 Kubernetes CronJob 中的计划运行时间
【发布时间】:2019-04-15 17:46:53
【问题描述】:

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

【问题讨论】:

    标签: kubernetes kubernetes-cronjob


    【解决方案1】:

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

    选项 2:使用 RoleRoleBindingServiceAccount 的组合,然后使用 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 点重新启动,则暴露给容器的日期仍然是最初的计划时间。假设它准时开始,这可能通过解析作业名称来实现?
    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2019-06-19
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多