Невозможно запустить задание cron в kubernets

У меня есть эта работа cron, работающая на kubernetes:

#  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 я установил его на сегодняшнее утро 10:05, используя расписание синтаксиса cron: 05 10 31 Mar * - но, к сожалению, когда я проверил после 10:05, моя работа (модуль) не выполнялась.

Итак, я обнаружил, что в 10.05 он работает не так, как ожидалось, используя приведенное выше выражение. Может кто-нибудь помочь мне написать правильный синтаксис cron? Любая помощь будет оценена по достоинству. Спасибо

Каков часовой пояс главного самолета? Когда вы запускаете команду даты, совпадает ли время с вашим?

CodeScale 31.03.2023 08:27
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
1
68
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я думаю, что это должно сработать 5 10 31 MAR FRI.

Я могу порекомендовать использовать такой сайт, как этот, чтобы составлять свои cron расписания.

Ответ принят как подходящий

Cron выглядит хорошо, но проверяет часовой пояс вашего кластера Kubernetes. Кластер K8s может следовать часовому поясу UTC и надеяться, что вы считаете то же самое в местном часовом поясе.

Этот cron должен работать: 05 10 31 Mar * но на основе настройки даты кластера.

Да, это первопричина. Большое спасибо

Niranjan 31.03.2023 12:41

Сначала проверьте часовой пояс в вашем кластере, выполнив команду date, потому что большинство часовых поясов будут в формате UTC. Используйте команду даты, как показано ниже.

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

Теперь установите время расписания в cronjob на основе вашего часового пояса. По вашему требованию 5 10 31 MAR * должно работать. Используйте этот сайт crontab для формулировки времени на основе синтаксиса.

Другие вопросы по теме