K8s CronJob YAML
Gere um Kubernetes CronJob em YAML com a expressão de schedule e o container a executar. Agende tarefas recorrentes no cluster e aplique com kubectl.
YAML
—
Agendar tarefa no cluster sem errar aninhamento
Você quer um backup rodando às duas da manhã dentro do cluster, e a resposta é um CronJob. O problema é a estrutura: um spec dentro de jobTemplate dentro de spec dentro de template dentro de outro spec, cinco níveis antes de chegar ao container. É o objeto do Kubernetes em que mais gente erra a indentação e desiste no meio, voltando para o crontab de uma máquina qualquer.
A saída traz apiVersion batch/v1, o nome que você digitou, o schedule entre aspas e um único container chamado job com a imagem informada, mais restartPolicy OnFailure. As aspas no schedule não são enfeite: sem elas, certas expressões viram outra coisa no parser de YAML. Não há campo para command nem args, então a imagem precisa já fazer o trabalho certo no próprio ENTRYPOINT.
O detalhe que pega quase todo mundo: o schedule roda no fuso do controlador, normalmente UTC, a menos que você declare o campo timeZone. No horário de Brasília, um agendamento marcado para as 2h dispara às 23h do dia anterior. Se a imagem for genérica como a alpine, acrescente command e args. E para tarefa que não pode sobrepor a execução anterior, adicione concurrencyPolicy Forbid. O YAML é gerado no navegador.
Perguntas frequentes
O horário do schedule usa o meu fuso?
Como passo um comando para o container?
Por que meus Jobs antigos ficam acumulando?
Ferramentas Relacionadas
K8s Secret YAML (base64)
Gere um Kubernetes Secret em YAML com os valores já codificados em base64. Guarde senhas e tokens com segurança e aplique no cluster com kubectl.
K8s ConfigMap YAML
Gere um Kubernetes ConfigMap em YAML a partir de pares chave=valor, pronto para aplicar com kubectl. Centralize a configuração dos seus pods em segundos.
K8s Ingress YAML
Gera um Ingress do Kubernetes com host, service e porta, usando ingressClassName nginx e path raiz. O bloco de TLS você acrescenta à mão.