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.
Faça login no Qwiklabs em uma janela anônima.
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.
Quando tudo estiver pronto, clique em Começar o laboratório.
Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.
Clique em Abrir Console do Google.
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.
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.
No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.
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:
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:
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
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
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.
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.
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
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.
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!".
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!
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.
Para excluir todos esses jobs, execute o comando abaixo:
kubectl delete cronjob hello
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.
Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
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.
No canto superior esquerdo da tela, clique em Começar o laboratório
Usar a navegação anônima
Copie o nome de usuário e a senha fornecidos para o laboratório
Clique em Abrir console no modo anônimo
Fazer login no console
Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
Aceite os termos e pule a página de recursos de recuperação
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.
Architecting with Google Kubernetes Engine: Como implantar jobs no Kubernetes Engine
Duração:
Configuração: 9 minutos
·
Tempo de acesso: 60 minutos
·
Tempo para conclusão: 60 minutos