无法在 kubernets 中运行 cron 作业

Unable to run cron job in kubernets

提问人:Niranjan 提问时间:3/31/2023 最后编辑:marc_sNiranjan 更新时间:5/19/2023 访问量:142

问:

我在 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 语法吗?任何帮助将不胜感激。谢谢

kubernetes cron kubernetes-cronjob

评论

0赞 CodeScale 3/31/2023
主飞机的时区是什么?当您运行日期命令时,时间是否与您的时间对齐?

答:

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 *