是否可以将 Kubernetes Cronjob status.lastScheduleTime 时间戳传递给计划作业的容器?

Is it possible to pass Kubernetes Cronjob status.lastScheduleTime timestamp to the container of scheduled job?

我有一个 cronjob 应该处理自上次操作以来发生的事件,因为我使用 DB 来保存这个时间戳,我的问题是是否可以直接传递 Kubernetes status.lastScheduleTime作为环境变量进入cronjob对象?

我看到最简单的方法是通过 kubectl set env 命令实现您的目标,注入特定的 Cronjob template object the desired status.lastScheduleTime field as environment 变量 LAST_SCHEDULE:

kubectl set env cronjob/name LAST_SCHEDULE=$(kubectl get cronjob name -o jsonpath='{.status.lastScheduleTime}')

env:
- name: LAST_SCHEDULE
  value: "2019-09-23T08:56:00Z"

您可能还会找到一种更全面的方法来实现 Cronjob 资源修补,通过 Init Containers or through postStart/preStop handlers 在相应模板中提供具有最新 lastScheduleTime 值的目标环境变量.