Openshift CronJob не запускается для указанного c расписания - PullRequest
0 голосов
/ 30 апреля 2020

В настоящее время я пытаюсь создать CronJob в Openshift, который начинается каждый день в 3.00. Создание CronJob с использованием расписания со значениями шагов (например, «0 * / 1 * * *») работает нормально, и Задания запускаются правильно, однако при создании CronJob с указанным c расписанием, таким как «0 3 * * *» или «0 3 * / 1 * *», CronJob вообще не запускается.

Я проверил метки времени в разделе мониторинга, и метки времени отображаются в том же часовом поясе, что и для Расписание CronJob.

Есть идеи, как решить / обойти эту проблему или, возможно, CronJob использует настройку часового пояса, отличную от указанной в журналах?

Я использую openshift v3 .9.102 и kubernetes v1.9.1 + a0ce1bc657.

Моя конфигурация CronJob:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: update-prices
spec:
  schedule: "0 3 * * *"
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            parent: "cronjobpcurl"
        spec:
          containers:
            - name: curljob
              image: curlimages/curl:latest
              command: ["curl", "--insecure", "https://www.example.com"]
              imagePullPolicy: Always
          restartPolicy: Never

1 Ответ

1 голос
/ 30 апреля 2020

В соответствии с документацией для CronJobs :

Все времена расписания работы cron основаны на часовом поясе мастера, где задание инициировано.

Итак, первое, что вы, возможно, захотите проверить - это какой часовой пояс имеют ваши узлы OpenShift Master.

Затем проверьте, работает ли ваш cronjob вообще («ПОСЛЕДНЯЯ РАСПИСАНИЕ», здесь он работает 14 с * 1020). *):

$ oc get cronjob
NAME            SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
my-cronjob      0 19 * * *   False     0        14s             3m

Вы также можете использовать oc describe cronjob my-cronjob, чтобы увидеть События и время последнего запуска CronJob. Кроме того, он также сообщит вам, когда произошла ошибка:

$ oc describe cronjob my-cronjob
[..]
Last Schedule Time:  Thu, 30 Apr 2020 19:00:00 +0200
Active Jobs:         <none>
Events:
  Type    Reason            Age   From                Message
  ----    ------            ----  ----                -------
  Normal  SuccessfulCreate  80s   cronjob-controller  Created job my-cronjob-1588273680
  Normal  SawCompletedJob   70s   cronjob-controller  Saw completed job: my-cronjob-1588273680

Если вы не видите ничего в событиях, посмотрите журналы OpenShift Controller, там вы должны увидеть что-то вроде этого:

controller.go:597] quota admission added evaluator for: {batch jobs}
event.go:221] Event(v1.ObjectReference{Kind:"CronJob", Namespace:"myproject", Name:"my-cronjob", UID:"8369a749-8b15-11ea-807e-080027e8770f", APIVersion:"batch/v1beta1", ResourceVersion:"3736", FieldPath:""}): type: 'Normal' reason: 'SuccessfulCreate' Created job my-cronjob-1588273680
controller.go:597] quota admission added evaluator for: {batch jobs}
event.go:221] Event(v1.ObjectReference{Kind:"Job", Namespace:"myproject", Name:"my-cronjob-1588273680", UID:"e9a3d2c5-8b15-11ea-807e-080027e8770f", APIVersion:"batch/v1", ResourceVersion:"3837", FieldPath:""}): type: 'Normal' reason: 'SuccessfulCreate' Created pod: my-cronjob-1588273680-q2tdc
[..]
...