arrow_back

Como implantar jobs no Kubernetes Engine

Acesse mais de 700 laboratórios e cursos

Como implantar jobs no Kubernetes Engine

Laboratório 1 hora universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Visão geral

Neste laboratório, você definirá e executará jobs e CronJobs.

No GKE, um job é um objeto controlador que representa uma tarefa finita. Os jobs gerenciam uma tarefa até a conclusão, em vez de controlar um estado desejado contínuo, como a manutenção do número total de pods em execução.

Os CronJobs realizam tarefas finitas e vinculadas a um período de tempo. É possível realizá-las uma vez ou repetidamente em um horário especificado por você com os objetos job.

Objetivos

Neste laboratório, você aprenderá a realizar as seguintes tarefas:

  • Definir, implantar e limpar um job do GKE

  • Definir, implantar e limpar um CronJob do GKE

Tarefa 0: configuração do laboratório

Acesse o Qwiklabs

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Depois que você concluir as etapas iniciais, o painel do projeto será exibido.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.

O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

    Ícone do Cloud Shell em destaque

  2. Clique em Continuar.

O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

ID do projeto em destaque no terminal do Cloud Shell

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  • Para listar o nome da conta ativa, use este comando:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

Tarefa 1: defina e implante um manifesto de job

No GKE, um job é um objeto controlador que representa uma tarefa finita.

Nesta tarefa, você vai criar um job, inspecionar o status dele e removê-lo.

Conecte-se ao cluster do Google Kubernetes Engine do laboratório

  1. No Cloud Shell, digite o comando abaixo para definir a variável de ambiente da zona e o nome do cluster.

export my_zone=us-central1-a export my_cluster=standard-cluster-1
  1. Configure o preenchimento automático da kubectl no Cloud Shell.

source <(kubectl completion bash)
  1. No Cloud Shell, use o seguinte comando para configurar o acesso da ferramenta de linha de comando kubectl ao seu cluster:

gcloud container clusters get-credentials $my_cluster --zone $my_zone
  1. No Cloud Shell, digite o comando a seguir para clonar o repositório no Cloud Shell do laboratório.

git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Crie um link flexível como atalho para o diretório de trabalho.

ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
  1. Mude para o diretório que contém os arquivos de exemplo do laboratório.

cd ~/ak8s/Jobs_CronJobs

Crie e execute um job

Você criará um job usando uma amostra de manifesto de implantação fornecida chamada example-job.yaml. Ele calcula o valor de pi com 2.000 casas e mostra o resultado.

apiVersion: batch/v1 kind: Job metadata: # Unique key of the Job instance name: example-job spec: template: metadata: name: example-job spec: containers: - name: pi image: perl command: ["perl"] args: ["-Mbignum=bpi", "-wle", "print bpi(2000)"] # Do not restart containers after they exit restartPolicy: Never
  1. Para criar um job com base nesse arquivo, execute o comando abaixo:

kubectl apply -f example-job.yaml

Clique em Verificar meu progresso para conferir o objetivo. Criar e executar um job

  1. Para verificar o status desse job, execute o comando abaixo:

kubectl describe job example-job

Você vai ver os detalhes do job, inclusive os status do pod que indicam quantos jobs ainda estão em execução, foram concluídos e falharam.

... Start Time: Thu, 20 Dec 2018 14:34:09 +0000 Pods Statuses: 0 Running / 1 Succeeded / 0 Failed ...
  1. Para ver todos os recursos de pods no seu cluster, inclusive os pods concluídos criados pelo job, execute o comando abaixo:

kubectl get pods

É possível que o nome do seu pod seja diferente da saída de exemplo. Anote um dos nomes de pods.

NAME READY STATUS RESTARTS AGE example-job-sqljc 0/1 Completed 0 1m

Limpe e exclua o job

Quando um job é concluído, ele deixa de criar pods. O objeto Job da API não é removido após a conclusão, assim você pode ver o status dele. Os pods criados pelo job não são excluídos, apenas encerrados. A retenção dos pods permite que você veja os registros e interaja com eles.

  1. Para ver uma lista dos jobs no cluster, execute o comando abaixo:

kubectl get jobs

A saída será semelhante ao exemplo.

NAME COMPLETIONS DURATION AGE example-job 1/1 75s 2m5s
  1. Para recuperar o arquivo de registros do pod responsável pelo job, execute o comando abaixo. Substitua [POD-NAME] pelo nome do pod registrado na última tarefa.

kubectl logs [POD-NAME]

A saída vai mostrar que o job escreveu os dois mil primeiros dígitos de pi no registro do pod.

  1. Para excluir o job, execute o comando abaixo:

kubectl delete job example-job

Se você tentar consultar os registros novamente, o comando vai falhar, já que não é mais possível encontrar o pod.

Tarefa 2: defina e implante um manifesto de CronJob

Os CronJobs servem para realizar tarefas finitas e vinculadas a um período de tempo. É possível realizá-las uma vez ou repetidamente de acordo com um horário especificado por você.

Nesta tarefa, você criará e executará um CronJob. Depois, limpará e excluirá o job.

Crie e execute um CronJob

Você recebeu o arquivo de manifesto do CronJob, example-cronjob.yaml. Esse CronJob implanta um novo contêiner a cada minuto. Todos mostram a hora, a data e "Hello, World!".

apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo "Hello, World!" restartPolicy: OnFailure
  1. Para criar um job com base nesse arquivo, execute o comando abaixo:

kubectl apply -f example-cronjob.yaml

Clique em Verificar meu progresso para conferir o objetivo. Criar e executar um CronJob

  1. Para ver uma lista dos jobs no cluster, execute o comando abaixo:

kubectl get jobs

A saída será semelhante ao exemplo.

NAME COMPLETIONS DURATION AGE hello-1545013620 1/1 2s 18s
  1. Para conferir o status desse job, execute o comando abaixo, em que [job_name] é o nome do job:

kubectl describe job [job_name]

Você vai ver os detalhes do job, inclusive os status do pod mostrando que uma instância desse job foi executada.

... Start Time: Thu, 20 Dec 2018 15:24:03 +0000 Pods Statuses: 0 Running / 1 Succeeded / 0 Failed ... ...Created pod: hello-1545319920-twkhl
  1. Anote o nome do pod usado por esse job.

  2. Veja a resposta do job consultando os registros do pod. Substitua [POD-NAME] pelo nome do pod que você registrou na última etapa.

kubectl logs [POD-NAME]

Com isso, você vê a saída do script de shell configurado no CronJob:

Fri Jan 28 11:12:01 UTC 2022 Hello, World!
  1. Para ver todos os recursos do job no cluster, inclusive os pods concluídos criados pelo CronJob, execute o comando abaixo:

kubectl get jobs

É possível que os nomes de jobs sejam diferentes da saída de exemplo. Por padrão, o Kubernetes define os limites do histórico para reter apenas os três últimos jobs bem-sucedidos e o último job com falha. Por isso, essa lista vai conter apenas três dos quatro jobs mais recentes.

NAME COMPLETIONS DURATION AGE hello-27389472 1/1 1s 2m55s hello-27389473 1/1 1s 115s hello-27389474 1/1 1s 55s

Limpe e exclua o job

Para interromper o CronJob e limpar os jobs associados a ele, exclua o CronJob.

  1. Para excluir todos esses jobs, execute o comando abaixo:

kubectl delete cronjob hello
  1. Para verificar se os jobs foram excluídos, execute o comando abaixo:

kubectl get jobs

A saída será semelhante ao exemplo.

No resources found in default namespace.

Todos os jobs foram removidos.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.