Cron → K8s CronJob
Kubernetes DevOps & Cloud-Native Batch Generator

Conversor de Cron para Kubernetes CronJob YAML e Gerador de Especificações

Converta expressões crontab padrão em manifestos Kubernetes CronJob prontos para produção com restartPolicy, concurrencyPolicy, limites de recursos e suporte a fuso horário.

POSIX Crontab ↔ batch/v1 CronJob & Helm
Modelos:
Política de Concorrência:
Política de Reinício:
CPU:/
Mem:/
Agendamento Crontab e ComandoPOSIX Standard
Enter 5-part cron or full crontab command line:[min] [hour] [dom] [mon] [dow] [cmd?]
Quick Chips:
Container Command / Exec Script:
|
Agendamento Kubernetes Avaliadospec.schedule
schedule: "0 2 * * *"
5-Part Schedule Breakdown & Semanticsbatch/v1 Spec
Min 0At min 0
Hour 2At hour 2:00
DOM *Every day
Mon *Every month
DOW *Any weekday
Schedule Cadence:At 2:00 AM (02:00), every day.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
apiVersion: batch/v1
kind: CronJob
metadata:
  name: pg-nightly-backup
  namespace: default
  labels:
    app.kubernetes.io/name: pg-nightly-backup
    app.kubernetes.io/managed-by: toolsaa
spec:
  schedule: "0 2 * * *"
  timeZone: "UTC"
  concurrencyPolicy: Forbid
  suspend: false
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 1
  startingDeadlineSeconds: 120
  jobTemplate:
    spec:
      backoffLimit: 3
      activeDeadlineSeconds: 3600
      template:
        metadata:
          labels:
            app.kubernetes.io/name: pg-nightly-backup
        spec:
          restartPolicy: OnFailure
          containers:
          - name: pg-nightly-backup
            image: postgres:16-alpine
            imagePullPolicy: IfNotPresent
        command:
        - /bin/sh
        - -c
        args:
        - "pg_dumpall -h postgres.database.svc.cluster.local -U postgres | gzip > /tmp/backup.sql.gz"
            resources:
              requests:
                cpu: "100m"
                memory: "128Mi"
              limits:
                cpu: "500m"
                memory: "512Mi"
            securityContext:
              allowPrivilegeEscalation: false
              runAsNonRoot: true
              readOnlyRootFilesystem: false
Conformidade de Sintaxe
VALID (batch/v1 Compliant)
Tested against POSIX crontab & Go-cron spec
Linhas do CronJob
Forbid • OnFailure
TZ: UTC (backoff: 3)
Tamanho do Manifesto
46 lines • 1253 bytes
Resource limits: 500m / 512Mi

Privacidade 100% no Cliente

Sem envios para servidores ou telemetria. Suas expressões cron e especificações de pods são processadas no seu navegador.

Conformidade com Kubernetes batch/v1

Gera manifestos YAML em conformidade com as especificações batch/v1 da API Kubernetes e convenções RFC 1123.

Agendamento Cloud-Native Empresarial

Suporta políticas de concorrência (Forbid/Allow/Replace), restartPolicy (OnFailure/Never) e limites de recursos CPU/Memória.

Referência técnica e guia de arquitetura

Conversor de Cron para Kubernetes CronJob YAML e Gerador de Especificações — Guia de referência

Converta expressões crontab padrão em manifestos Kubernetes CronJob prontos para produção com restartPolicy, concurrencyPolicy, limites de recursos e suporte a fuso horário.

Parâmetros principais e controles

spec.schedulestring

Expressão cron padrão de cinco campos (minuto, hora, dia do mês, mês, dia da semana) que estabelece o ciclo de execução.

Padrão: 0 0 * * *
spec.concurrencyPolicystring ('Allow' | 'Forbid' | 'Replace')

Define o comportamento caso uma nova execução seja acionada enquanto uma execução anterior ainda estiver ativa.

Padrão: Allow
spec.jobTemplate.spec.template.spec.restartPolicystring ('OnFailure' | 'Never')

Política de reinicialização do Pod. Processos em lote exigem finalização terminal; 'Always' é estritamente proibido pelo Kubernetes.

Padrão: OnFailure
spec.startingDeadlineSecondsinteger (segundos)

Prazo limite opcional em segundos para iniciar o job caso o horário agendado seja perdido devido a manutenção no cluster.

Padrão: Nenhum (opcional)
spec.successfulJobsHistoryLimitinteger

Quantidade de Pods de Jobs concluídos com êxito que serão mantidos para auditoria e histórico de logs.

Padrão: 3
spec.failedJobsHistoryLimitinteger

Quantidade de Pods de Jobs com falha retidos para depuração e análise de causa raiz.

Padrão: 1

Dicas profissionais e melhores práticas

Utilize 'concurrencyPolicy: Forbid' para tarefas demoradas

Se rotinas de backup ou ETL levarem mais tempo do que o intervalo definido, o uso de 'Forbid' impede execuções sobrepostas, travamentos de banco de dados e saturação de nós.

Defina 'activeDeadlineSeconds' para encerrar processos travados

Configure 'spec.jobTemplate.spec.activeDeadlineSeconds'. Caso um pod entre em deadlock em chamadas remotas, o Kubernetes abortará o job automaticamente após o tempo limite.

Adote o suporte nativo a fusos horários no Kubernetes 1.27+

Declare 'spec.timeZone: "America/Sao_Paulo"' ou '"UTC"' diretamente no YAML para respeitar transições de horário de verão independentemente do relógio do servidor físico.

Limite o 'backoffLimit' para evitar avalanche de pods com erro

Reduza o 'spec.jobTemplate.spec.backoffLimit' para 2 ou 3 (o padrão é 6) para evitar poluir o cluster com tentativas repetidas de containers que falham sistematicamente.

Problemas comuns e solução de problemas

Erro de restartPolicy inválida: 'Pod template restart policy Always is not allowed'

Altere 'spec.jobTemplate.spec.template.spec.restartPolicy' de 'Always' para 'OnFailure' ou 'Never'. Tarefas do tipo Job exigem término garantido.

CronJob interrompe execuções devido a mais de 100 agendamentos perdidos

Se o CronJob perder mais de 100 execuções durante uma indisponibilidade prolongada, o agendamento é pausado. Configure 'spec.startingDeadlineSeconds: 200' e recrie o recurso.

Jobs simultâneos geram conflito de escrita ou contenção de lock

Mude 'spec.concurrencyPolicy' para 'Forbid'. O Kubernetes ignorará novos agendamentos enquanto a execução atual estiver em andamento.

Perguntas frequentes (FAQ)

Qual versão da API deve ser utilizada para CronJobs no Kubernetes?▼

Utilize sempre 'apiVersion: batch/v1'. A versão antiga 'batch/v1beta1' foi descontinuada na v1.21 e totalmente removida no Kubernetes v1.25.

Qual a principal diferença entre um crontab do Linux e um CronJob do Kubernetes?▼

O crontab do Linux roda comandos diretamente no sistema operacional do servidor, enquanto o Kubernetes CronJob instancia Pods conteinerizados distribuídos, com governança de recursos, injeção de segredos e políticas de resiliência.

É possível disparar um Kubernetes CronJob manualmente sob demanda?▼

Sim, execute 'kubectl create job <nome-do-job> --from=cronjob/<nome-do-cronjob> -n <namespace>' para gerar uma execução imediata baseada no modelo existente.

Qual a diferença prática entre restartPolicy OnFailure e Never?▼

Com 'OnFailure', o container reinicia dentro do mesmo Pod no mesmo nó. Com 'Never', o Pod com falha é preservado e o controlador agenda um Pod totalmente novo em outro nó de acordo com o 'backoffLimit'.

Como requests e limits de recursos protegem o cluster em rotinas batch?▼

'resources.requests' assegura que o escalonador encontre um nó com memória e CPU suficientes. Já 'resources.limits' impede que um script com vazamento de memória esgote o nó do cluster, acionando o OOMKiller de forma controlada.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Gerador de Esquemas GraphQL SDL a partir de JSON (Types, Queries e Inputs) - Guia do Desenvolvedordeveloper

Gere tipos de objeto, tipos de entrada (inputs) e esquemas de consulta na linguagem de definição de esquemas (SDL) do GraphQL a partir de JSON.

Abrir ferramenta→
Gerador de Regras de Alerta e Gravação Prometheus (PromQL) - Guia do Desenvolvedordeveloper

Construa e valide visualmente regras de alerta PromQL, regras de gravação (recording rules), limites, rótulos e anotações de runbook.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Tipos de Resolver TypeScript a partir de GraphQL SDLdeveloper

Gere interfaces de resolver TypeScript fortemente tipadas, argumentos de query/mutation e tipos de contexto a partir de esquemas GraphQL SDL.

Abrir ferramenta→
Guia do Desenvolvedor: Conversor de cURL para C# (.NET HttpClient, RestSharp e Flurl)developer

Converta comandos cURL em código C# idiomático para .NET HttpClient, RestSharp ou Flurl.Http com padrões assíncronos e melhores práticas de pool de conexões.

Abrir ferramenta→
Guia do Desenvolvedor: Conversor de cURL para Java (Java 11+ HttpClient, OkHttp e Spring WebClient)developer

Converta comandos cURL em requisições HTTP Java prontas para produção com java.net.http.HttpClient nativo, OkHttp3 ou Spring WebClient.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Definições JSON para XML Schema (XSD)developer

Infira esquemas XML (XSD), estruturas de tipos complexos, atributos e regras de ocorrência minOccurs/maxOccurs a partir de dados JSON.

Abrir ferramenta→