OpenShift: Cronjob выполняется в неправильном часовом поясе, несмотря на правильную конфигурацию мастера

Я настроил cronjob в OpenShift. Его запись в crontab выглядит так:

spec:
  schedule: "0 3 * * 1-5"
  jobTemplate:

Таким образом, он должен запускаться в 03:00 утра по будням. Все узлы кластера настроены на использование нашего местного часового пояса, CET, который равен UTC + 1. Это видно с помощью команды date . В документации OpenShift говорится, что cronjobs выполняются через crontab, соответствующий настроенному часовому поясу главных узлов, поэтому я ожидаю, что cronjobs фактически запустятся в 03:00 CET.

Однако, согласно журналам, cronjobs выполняются в 04:00, что является 03:00 CET по UTC. Странно то, что oc description cronjob показывает:

Last Schedule Time:  Mon, 14 Jan 2019 04:00:00 +0100

Итак, сервер действительно знает, что cronjob выполняется на час позже.

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

3
задан 14 January 2019 в 13:44
1 ответ

CronJobs управляется главным контроллером.

В Openshift (после ~ v3.10) контроллеры запускаются как под, определенный в / etc / origin / node / pods (по крайней мере в нашей настройке).

У нас была точно такая же проблема, и мы заметили, что отметка времени в журналах контроллера была на один час с отклонением.

Это было исправлено путем добавления монтирования в / etc / origin / node / pods /controller.yaml[125 visible Под volumeMounts: добавьте:

   - mountPath: /etc/localtime
      name: localtime

Под тома: добавьте:

  - hostPath:
      path: /etc/localtime
    name: localtime
4
ответ дан 3 December 2019 в 05:59

Теги

Похожие вопросы