提问人:Niranjan 提问时间:3/31/2023 最后编辑:marc_sNiranjan 更新时间:5/19/2023 访问量:142
无法在 kubernets 中运行 cron 作业
Unable to run cron job in kubernets
问:
我在 kubernetes 上运行了这个 cron 作业:
# cronjob.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: loadjob
spec:
schedule: "05 10 31 Mar *"
successfulJobsHistoryLimit: 3
jobTemplate:
spec:
template:
metadata: # Dictionary
name: apiaplication
labels: # Dictionary
product_id: myprod
annotations:
vault.security.banzaicloud.io/vault-role: #{KUBERNETES_NAMESPACE}#
prometheus.io/path: /metrics
prometheus.io/port: "80"
prometheus.io/scrape: "true"
spec:
containers:
- name: al-onetimejob
image: #{TIMELOAD_IMAGE_TAG}#
imagePullPolicy: Always
restartPolicy: OnFailure
imagePullSecrets:
- name: secret
在上面的 cron 表达式中,我使用 cron 语法计划将其设置为今天上午 10.05 点: - 但不幸的是,当我在 10.05 之后检查时,我的作业 (pod) 没有运行。05 10 31 Mar *
所以我发现它没有像预期的那样运行在 10.05 使用上面的表达式。有人可以帮我编写正确的 cron 语法吗?任何帮助将不胜感激。谢谢
答:
1赞
Michał Lewndowski
3/31/2023
#1
我认为这应该做这项工作.5 10 31 MAR FRI
我可以推荐使用这样的网站来安排您的日程安排。cron
1赞
Harsh Manvar
3/31/2023
#2
Cron 看起来不错,但会检查 Kubernetes 集群的时区。K8s 集群可能遵循 UTC 时区,希望您在当地时区计算相同。
这个 cron 应该可以工作:但基于集群的日期设置。05 10 31 Mar *
评论
1赞
Niranjan
3/31/2023
是的,这是根本原因。多谢
1赞
Dharani Dhar Golladasari
3/31/2023
#3
首先通过执行 date 命令检查集群中的时区,因为大多数时区都是 UTC 格式。使用日期命令,如下所示
$ date
Fri Mar 31 07:21:47 UTC 2023
现在,根据您的时区在 cronjob 中设置计划时间。对于您的要求应该有效。使用此 crontab 站点根据语法制定时间。5 10 31 MAR *
评论