|
| 1 | +--- |
| 2 | +title: Executando tarefas automatizadas com CronJob |
| 3 | +min-kubernetes-server-version: v1.21 |
| 4 | +content_type: task |
| 5 | +weight: 10 |
| 6 | +--- |
| 7 | + |
| 8 | +<!-- overview --> |
| 9 | + |
| 10 | +Esta página mostra como executar tarefas automatizadas usando o objeto {{< glossary_tooltip text="CronJob" term_id="cronjob" >}} no kubernetes. |
| 11 | + |
| 12 | +## {{% heading "prerequisites" %}} |
| 13 | + |
| 14 | +* {{< include "task-tutorial-prereqs.md" >}} |
| 15 | + |
| 16 | +<!-- steps --> |
| 17 | + |
| 18 | +## Criando um CronJob {#creating-a-cron-job} |
| 19 | + |
| 20 | +Cron jobs requerem um arquivo de configuração. |
| 21 | +Aqui está um manifesto para CronJob que executa uma tarefa de demonstração simples a cada minuto: |
| 22 | + |
| 23 | +{{% code_sample file="application/job/cronjob.yaml" %}} |
| 24 | + |
| 25 | +Execute o exemplo de CronJob usando o seguinte comando: |
| 26 | + |
| 27 | +```shell |
| 28 | +kubectl create -f https://k8s.io/examples/application/job/cronjob.yaml |
| 29 | +``` |
| 30 | +A saída é semelhante a esta: |
| 31 | + |
| 32 | +``` |
| 33 | +cronjob.batch/hello created |
| 34 | +``` |
| 35 | + |
| 36 | +Após criar o cron job, obtenha o status usando este comando: |
| 37 | + |
| 38 | +```shell |
| 39 | +kubectl get cronjob hello |
| 40 | +``` |
| 41 | + |
| 42 | +A saída é semelhante a esta: |
| 43 | + |
| 44 | +``` |
| 45 | +NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE |
| 46 | +hello */1 * * * * False 0 <none> 10s |
| 47 | +``` |
| 48 | + |
| 49 | +Como você pode ver pelos resultados do comando, o cron job ainda não agendou ou executou uma tarefa ainda. |
| 50 | +{{< glossary_tooltip text="Observe" term_id="watch" >}} que a tarefa será criada em cerca de um minuto: |
| 51 | + |
| 52 | +```shell |
| 53 | +kubectl get jobs --watch |
| 54 | +``` |
| 55 | +A saída é semelhante a esta: |
| 56 | + |
| 57 | +``` |
| 58 | +NAME COMPLETIONS DURATION AGE |
| 59 | +hello-4111706356 0/1 0s |
| 60 | +hello-4111706356 0/1 0s 0s |
| 61 | +hello-4111706356 1/1 5s 5s |
| 62 | +``` |
| 63 | + |
| 64 | +Agora você viu uma tarefa em execução agendada pelo cron job "hello". |
| 65 | +Você pode parar de observá-lo e visualizar o cron job novamente para ver que ele agendou a tarefa: |
| 66 | + |
| 67 | +```shell |
| 68 | +kubectl get cronjob hello |
| 69 | +``` |
| 70 | + |
| 71 | +A saída é semelhante a esta: |
| 72 | + |
| 73 | +``` |
| 74 | +NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE |
| 75 | +hello */1 * * * * False 0 50s 75s |
| 76 | +``` |
| 77 | + |
| 78 | +Você deve ver que o cron job `hello` agendou uma tarefa com sucesso no tempo especificado em |
| 79 | +`LAST SCHEDULE`. Existem atualmente 0 tarefas ativas, o que significa que a tarefa foi concluída ou falhou. |
| 80 | + |
| 81 | +Agora, encontre os pods da última tarefa agendada criada e veja a saída padrão de um dos pods. |
| 82 | + |
| 83 | +{{< note >}} |
| 84 | +O nome da tarefa é diferente do nome do pod. |
| 85 | +{{< /note >}} |
| 86 | + |
| 87 | +```shell |
| 88 | +# Replace "hello-4111706356" with the job name in your system |
| 89 | +pods=$(kubectl get pods --selector=job-name=hello-4111706356 --output=jsonpath={.items[*].metadata.name}) |
| 90 | +``` |
| 91 | +Veja os logs do pod: |
| 92 | + |
| 93 | +```shell |
| 94 | +kubectl logs $pods |
| 95 | +``` |
| 96 | +A saída é semelhante a esta: |
| 97 | + |
| 98 | +``` |
| 99 | +Fri Feb 22 11:02:09 UTC 2019 |
| 100 | +Hello from the Kubernetes cluster |
| 101 | +``` |
| 102 | + |
| 103 | +## Deletando um CronJob {#deleting-a-cron-job} |
| 104 | + |
| 105 | +Quando você não precisar mais de um cron job, exclua-o com `kubectl delete cronjob <cronjob name>`: |
| 106 | + |
| 107 | +```shell |
| 108 | +kubectl delete cronjob hello |
| 109 | +``` |
| 110 | + |
| 111 | +Excluindo o cron job remove todas as tarefas e pods que ele criou e impede a criação de novas tarefas. |
| 112 | +Você pode ler mais sobre como remover tarefas em [garbage collection](/docs/concepts/architecture/garbage-collection/). |
0 commit comments