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

Conversor de Cron a Kubernetes CronJob YAML y Generador de Especificaciones

Transforme expresiones crontab estándar en manifiestos Kubernetes CronJob listos para producción con restartPolicy, concurrencyPolicy, cuotas de recursos y soporte de zona horaria.

POSIX Crontab ↔ batch/v1 CronJob & Helm
Preajustes:
Política de Concurrencia:
Política de Reinicio:
CPU:/
Mem:/
Programación Crontab y ComandoPOSIX Standard
Enter 5-part cron or full crontab command line:[min] [hour] [dom] [mon] [dow] [cmd?]
Quick Chips:
Container Command / Exec Script:
|
Programación Kubernetes Evaluadaspec.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
Conformidad de Sintaxis
VALID (batch/v1 Compliant)
Tested against POSIX crontab & Go-cron spec
Líneas de CronJob
Forbid • OnFailure
TZ: UTC (backoff: 3)
Tamaño del Manifiesto
46 lines • 1253 bytes
Resource limits: 500m / 512Mi

Privacidad 100% del lado del cliente

Sin subidas a servidores ni telemetría. Las expresiones cron y especificaciones de pods se procesan localmente en su navegador.

Conformidad con Kubernetes batch/v1

Genera archivos YAML válidos conformes con la API batch/v1 de Kubernetes y las normas DNS RFC 1123.

Programación Nativa en la Nube

Configuración completa de concurrencyPolicy (Forbid/Allow/Replace), restartPolicy (OnFailure/Never) y comandos kubectl.

Referencia técnica y guía de arquitectura

Conversor de Cron a Kubernetes CronJob YAML y Generador de Especificaciones — Guía de referencia

Transforme expresiones crontab estándar en manifiestos Kubernetes CronJob listos para producción con restartPolicy, concurrencyPolicy, cuotas de recursos y soporte de zona horaria.

Parámetros clave y controles

spec.schedulestring

Expresión cron estándar de cinco campos (minuto, hora, día del mes, mes, día de la semana) que define el intervalo de ejecución.

Por defecto: 0 0 * * *
spec.concurrencyPolicystring ('Allow' | 'Forbid' | 'Replace')

Determina cómo gestionar una nueva ejecución programada cuando una tarea anterior todavía sigue en proceso.

Por defecto: Allow
spec.jobTemplate.spec.template.spec.restartPolicystring ('OnFailure' | 'Never')

Política de reinicio de contenedores dentro del Pod. Las tareas batch requieren finalización definitiva; 'Always' está prohibido en Kubernetes.

Por defecto: OnFailure
spec.startingDeadlineSecondsinteger (segundos)

Plazo límite opcional en segundos para iniciar una tarea si se perdió su hora programada por mantenimiento del clúster.

Por defecto: Ninguno (opcional)
spec.successfulJobsHistoryLimitinteger

Número de Pods de Jobs completados con éxito que se retienen para auditoría, métricas e inspección de logs.

Por defecto: 3
spec.failedJobsHistoryLimitinteger

Número de Pods de Jobs fallidos que se conservan para análisis forense y resolución de incidencias.

Por defecto: 1

Consejos profesionales y mejores prácticas

Obligar 'concurrencyPolicy: Forbid' en tareas de larga duración

Si las copias de seguridad o sincronizaciones superan el intervalo programado, usar 'Forbid' evita la acumulación de ejecuciones paralelas, agotamiento de CPU y bloqueos en base de datos.

Configurar 'activeDeadlineSeconds' para evitar procesos colgados

Defina siempre 'spec.jobTemplate.spec.activeDeadlineSeconds'. Si un pod se bloquea en una llamada de red externa, Kubernetes terminará la tarea forzosamente al alcanzar dicho límite.

Aprovechar la gestión de zona horaria nativa en Kubernetes 1.27+

Indique 'spec.timeZone: "Europe/Madrid"' o '"America/Mexico_City"' directamente en el manifiesto para contemplar los cambios de horario de verano sin depender de la hora del nodo.

Ajustar 'backoffLimit' para controlar reintentos excesivos

Configure 'spec.jobTemplate.spec.backoffLimit: 2' o '3' en lugar del valor por defecto de 6 para evitar saturar el clúster con Pods fallidos repetitivos.

Errores comunes y solución de problemas

Error de restartPolicy: 'Pod template restart policy Always is not allowed'

Cambie 'spec.jobTemplate.spec.template.spec.restartPolicy' de 'Always' a 'OnFailure' o 'Never'. Las tareas por lotes deben poder concluir.

CronJob deja de ejecutarse por más de 100 inicios perdidos

Si un CronJob pierde más de 100 ejecuciones consecutivas (por ejemplo, tras una parada prolongada), el controlador se bloquea. Establezca 'spec.startingDeadlineSeconds: 200' y vuelva a crear el recurso.

Ejecución simultánea causa condiciones de carrera en bases de datos

Establezca 'spec.concurrencyPolicy' en 'Forbid'. La siguiente ejecución planificada se omitirá de forma segura si la anterior no ha concluido.

Preguntas frecuentes (FAQ)

¿Qué versión de API debe utilizarse para los CronJobs de Kubernetes?▼

Utilice siempre 'apiVersion: batch/v1'. La versión preliminar 'batch/v1beta1' quedó obsoleta en Kubernetes v1.21 y se eliminó por completo en la v1.25.

¿En qué se diferencia un Kubernetes CronJob de un crontab tradicional de Linux?▼

El crontab de Linux ejecuta comandos directamente en el sistema operativo anfitrión. Un Kubernetes CronJob orquesta Pods en contenedores aislados a través de múltiples nodos, con límites de recursos, inyección de credenciales y reintentos automáticos.

¿Cómo puedo ejecutar un CronJob de Kubernetes manualmente de forma inmediata?▼

Ejecute el comando 'kubectl create job <nombre-job> --from=cronjob/<nombre-cronjob> -n <namespace>'. Esto creará un recurso Job puntual basado en la plantilla actual.

¿Cuál es la diferencia entre restartPolicy: OnFailure y restartPolicy: Never?▼

Con 'OnFailure', el contenedor fallido se reinicia dentro del mismo Pod y en el mismo nodo. Con 'Never', el Pod fallido se mantiene intacto y el controlador programa un nuevo Pod en otro nodo según el 'backoffLimit'.

¿Cómo influyen las directivas requests y limits en las tareas programadas?▼

'resources.requests' garantiza que el planificador ubique el Pod en un nodo con CPU y memoria garantizadas, mientras que 'resources.limits' evita que una fuga de memoria perjudique a otros servicios críticos del clúster.

Herramientas y utilidades relacionadas

Todas las herramientas →
Generador de Esquemas GraphQL SDL desde JSON (Types, Queries e Inputs) - Guía para Desarrolladoresdeveloper

Genera definiciones de tipos de objeto, tipos de entrada (inputs) y esquemas de consultas en GraphQL SDL a partir de objetos JSON.

Abrir herramienta→
Generador de Reglas de Alerta y Registro de Prometheus (PromQL) - Guía para Desarrolladoresdeveloper

Construya y valide visualmente reglas de alerta PromQL, reglas de registro, umbrales, etiquetas y anotaciones de runbook.

Abrir herramienta→
Guía para Desarrolladores: Generador de Tipos de Resolver TypeScript desde GraphQL SDLdeveloper

Genera interfaces de resolver fuertemente tipadas en TypeScript, argumentos de query/mutation y tipos de contexto a partir de esquemas GraphQL SDL.

Abrir herramienta→
Guía de desarrollo del convertidor de cURL a C# (.NET HttpClient, RestSharp y Flurl)developer

Convierta comandos cURL en código C# idiomático para .NET HttpClient, RestSharp o Flurl.Http con patrones asíncronos y mejores prácticas de agrupación de conexiones.

Abrir herramienta→
Guía de desarrollo del convertidor de cURL a Java (Java 11+ HttpClient, OkHttp y Spring WebClient)developer

Convierta comandos cURL en solicitudes HTTP de Java para producción con java.net.http.HttpClient nativo, OkHttp3 o Spring WebClient.

Abrir herramienta→
Guía para Desarrolladores: Generador de Definiciones JSON a XML Schema (XSD)developer

Inferencia de esquemas XML (XSD), estructuras de tipos complejos, atributos y reglas de cardinalidad minOccurs/maxOccurs a partir de muestras JSON.

Abrir herramienta→