Поле расписания инспекций использует выражения Crontab, которые позволяют точно задавать время срабатывания по таким параметрам, как минуты, часы, дни, месяцы, недели и годы.
Поскольку Kubernetes работает по UTC (Universal Time Coordinated), при настройке правил срабатывания для запланированных задач необходимо сначала перевести местное время (например, пекинское время) в UTC, а затем преобразовать UTC во выражения Crontab.
Правило преобразования времени: Местное время - Разница часового пояса = UTC
В качестве примера возьмём преобразование пекинского времени в UTC:
Пекин находится в часовом поясе UTC+8, значит разница между пекинским временем и UTC составляет 8 часов, и правило преобразования такое:
Пекинское время - 8 = UTC
Пример 1: Пекинское время 9:42 преобразуется в UTC: 42 09 - 00 08 = 42 01, то есть UTC время — 01:42 .
Пример 2: Пекинское время 4:32 утра преобразуется в UTC: 32 04 - 00 08 = -68 03. Если получается отрицательное число, это означает предыдущий день, и требуется дополнительное преобразование: -68 03 + 00 24 = 32 20, то есть UTC время — 20:32 предыдущего дня.
Базовый формат: Минуты Часы День Месяц Неделя
Диапазоны значений
Минуты | Часы | Дни | Месяцы | Недели |
---|---|---|---|---|
[0-59] | [0-23] | [1-31] | [1-12] или [JAN-DEC] | [1-7] или [SUN-SAT] |
Поля минуты
, часы
, дни
, месяцы
и недели
допускают использование специальных символов, включая:
,
: Разделитель списка для указания нескольких значений. Например: 1,2,5,7,8,9.-
: Пользовательский диапазон значений. Например: 2-4, что означает 2, 3, 4.*
: Обозначает весь период времени. Например, в поле минут — каждую минуту./
: Используется для указания шага. Например: n/m означает начиная с n, с шагом m.Для удобства можно воспользоваться онлайн-конвертером на Crontab.guru.
Распространённые примеры:
Ввод 30 18 25 12 * означает, что задача сработает в 18:30:00 25 декабря.
Ввод 30 18 25 * 6 означает, что задача сработает в 18:30:00 25 числа каждого месяца и в каждую субботу.
Ввод 30 18 * * 6 означает, что задача сработает в 18:30:00 каждую субботу.
Ввод * 18 * * * означает, что начиная с ближайшего времени 18:00:00 задача будет срабатывать каждую минуту (включая 18:00:00 ).
Ввод 0 18 1,10,22 * * означает, что задача сработает в 18:00:00 1-го, 10-го и 22-го числа каждого месяца.
Ввод 0,30 18-23 * * * означает, что ежедневно с 18:00 до 23:00 задача будет срабатывать в 00 и 30 минут каждого часа.
Ввод * */1 * * * означает, что задача будет срабатывать каждую минуту.
Ввод * 2-7/1 * * * означает, что задача будет срабатывать каждую минуту с 2 до 7 часов утра ежедневно.
Ввод 0 11 4 * mon-wed означает, что задача сработает в 11:00 4-го числа каждого месяца и по понедельникам, вторникам и средам.