kubernetes 无法在kubernets中运行cron作业

vddsk6oq  于 2023-04-05  发布在  Kubernetes
关注(0)|答案(3)|浏览(139)
Hi I have below cron job running on kubernets.

#  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 syntex schedule将其设置为今天上午10.05AM:“05 10 31 Mar *”但不幸的是,当我检查后10.05我的作业(pod)没有运行.所以我发现它没有运行预期在10.05使用上述表达式.有人可以帮我写正确的cron syntex.任何帮助将不胜感激.谢谢

zzlelutf

zzlelutf1#

Cron看起来不错,但会检查您的Kubernetes集群的时区K8s集群可能遵循UTC时区,希望您在本地****时区中计数相同。
这个cron应该工作:05 10 31 Mar *,但基于群集的日期设置。

mwngjboj

mwngjboj2#

我认为这应该做5 10 31 MAR FRI的工作。
我可以推荐使用像this这样的网站来编写你的cron时间表。

zfciruhq

zfciruhq3#

首先检查集群中的时区,执行date命令,因为大部分时区都是UTC,使用date命令如下

$ date
Fri Mar 31 07:21:47 UTC 2023

现在根据您的时区在cronjob中设置计划时间。对于您的要求,5 10 31 MAR *应该可以工作。使用此crontab站点根据语法制定时间。

相关问题