Pular para o conteúdo
Abrir o Kubepier

Ferramenta 04 · roda no seu navegador

Cron para CronJob

Escreva o schedule e veja, em português, quando o job roda, as próximas cinco execuções no fuso escolhido e o YAML com timeZone.

privacidadeRoda no seu navegador. Nada sai da sua máquina.

Scheduleminuto hora dia mês dia-da-semana

cronjob.yaml · trecho

A sintaxe aceita

documentação do Kubernetes, "CronJob", seção "Schedule syntax"
CampoValoresExemplos
minuto0-590 · */15 · 5,35
hora0-233 · */6 · 8-18
dia do mês1-311 · 1,15 · ?
mês1-12 ou JAN-DEC* · 1-6 · JAN
dia da semana0-6 ou SUN-SAT (7 também é domingo)1-5 · MON · 0,6

O ? vale o mesmo que *. As macros aceitas são @yearly (ou @annually), @monthly, @weekly, @daily (ou @midnight) e @hourly. As próximas execuções são calculadas no relógio do fuso escolhido, como o controlador faz quando o CronJob tem timeZone.

Se o job roda e falha em todas as tentativas, o que aparece é BackoffLimitExceeded.

Perguntas frequentes

Em que fuso o CronJob roda se eu não disser nada?

No fuso local do kube-controller-manager, segundo a documentação do CronJob, e você nem sempre sabe qual é. Se ele estiver em UTC, 0 3 * * * vira meia-noite em Brasília. Para não depender disso, use o campo .spec.timeZone, estável desde o Kubernetes 1.27.

Posso escrever CRON_TZ=America/Sao_Paulo no schedule?

Não. A documentação diz que TZ e CRON_TZ dentro do schedule nunca foram suportados, e a API recusa o CronJob com erro de validação. O caminho é o campo timeZone.

Dia do mês e dia da semana juntos: vale os dois ou um dos dois?

Um dos dois. Com os dois campos restritos, como em 0 0 1 * 1, o job roda no dia 1 e também em toda segunda. É o comportamento do cron tradicional, e a ferramenta mostra as datas para você conferir.

Dá para agendar em segundos?

Não. O schedule tem cinco campos, e o menor intervalo é um minuto. Uma expressão com seis campos é recusada.

E se o cluster estiver fora do ar no horário?

O controlador conta as execuções perdidas; com startingDeadlineSeconds você limita quanto atraso ainda vale executar. Veja o campo na documentação do CronJob, seção "Deadline for delayed Job start".