No Kubernetes, Jobs e CronJobs são recursos usados para executar tarefas em contêineres de maneira controlada e programada. Eles são especialmente úteis para processos que precisam ser executados uma vez ou de forma recorrente.
Os Jobs no Kubernetes são usados para executar tarefas transitórias, ou seja, que devem ser executadas uma única vez e garantir que terminem com sucesso. Eles são úteis para processos como:
apiVersion: batch/v1
kind: Job
metadata:
name: exemplo-job
spec:
completions: 1 # Número total de execuções bem-sucedidas esperadas
parallelism: 1 # Número de pods que podem rodar em paralelo
template:
spec:
containers:
- name: exemplo
image: busybox
command: ["echo", "Executando Job no Kubernetes"]
restartPolicy: Never # Garante que o Pod não reinicie automaticamente
Os CronJobs são usados para agendar tarefas recorrentes de forma automática, baseando-se em expressões cron, como as usadas no Linux. Eles são úteis para:
* * * * *
, que representa minutos, horas, dias, meses e dias da semana.apiVersion: batch/v1
kind: CronJob
metadata:
name: exemplo-cronjob
spec:
schedule: "0 12 * * *" # Executa todo dia às 12h
jobTemplate:
spec:
template:
spec:
containers:
- name: exemplo
image: busybox
command: ["echo", "Executando CronJob no Kubernetes"]
restartPolicy: OnFailure
┌───────────── minuto (0 - 59)
│ ┌───────────── hora (0 - 23)
│ │ ┌───────────── dia do mês (1 - 31)
│ │ │ ┌───────────── mês (1 - 12)
│ │ │ │ ┌───────────── dia da semana (0 - 6) (Domingo = 0 ou 7)
│ │ │ │ │
│ │ │ │ │
* * * * *
Exemplos de horários de execução:
"*/5 * * * *"
→ A cada 5 minutos."0 0 * * 1"
→ Toda segunda-feira à meia-noite."0 6 1 * *"
→ No dia 1 de cada mês às 6h da manhã.Característica | Jobs | CronJobs |
---|---|---|
Execução | Uma única vez | Repetida em intervalos definidos |
Objetivo | Tarefa temporária | Tarefa agendada recorrente |
Controle | Manual | Automático com agendamento |
Exemplo de uso | Migração de banco | Backup diário de banco |
Se precisar de mais ajuda sobre Jobs e CronJobs no Kubernetes, consultar a documentação oficial em kubernetes.io