O Google Kubernetes Engine oferece um ambiente gerenciado para implantação, gerenciamento e escalonamento dos aplicativos em contêineres usando a infraestrutura do Google. O ambiente do Kubernetes Engine é composto por várias máquinas (instâncias do Google Compute Engine) agrupadas para formar um cluster.
O Kubernetes contém os mecanismos necessários para interagir com o cluster. Use os comandos e recursos do Kubernetes para implantar e gerenciar os aplicativos, executar tarefas administrativas e definir políticas, além de monitorar a integridade das cargas de trabalho implantadas.
Durante o laboratório, você vai implantar o aplicativo de teste no Kubernetes Engine usando os recursos do Google Cloud Platform, como o Cloud Build e o Container Registry, além dos recursos do Kubernetes, como implantações, pods e serviços.
Objetivos
Neste laboratório, você aprenderá a realizar as seguintes tarefas:
Criar Dockerfiles para empacotar o código de front-end e back-end do aplicativo de teste para implantação
Usar o Cloud Build para produzir imagens Docker
Provisionar um cluster do Kubernetes Engine para hospedar o aplicativo de teste
Usar implantações do Kubernetes para provisionar pods replicados no Kubernetes Engine
Usar um serviço do Kubernetes para provisionar um balanceador de carga para o front-end do teste
Configuração e requisitos
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.
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:
Altere para o diretório que contém os arquivos de trabalho:
cd ~/kubernetesengine/start
Configure o aplicativo de front-end do teste:
. prepare_environment.sh
Observação: este arquivo de script faz o seguinte:
Cria um aplicativo do Google App Engine.
Exporta as variáveis de ambiente GCLOUD_PROJECT e GCLOUD_BUCKET;
Executa o mvn clean install
Cria entidades no Google Cloud Datastore
Cria um tópico do Google Cloud Pub/Sub
Cria uma instância, um banco de dados e uma tabela do Cloud Spanner
Revisar o código
Agora revise e atualize o código do aplicativo de teste em um editor de código. Use o editor de código do Cloud Shell ou os editores de shell instalados no Cloud Shell, como nano ou vim. O laboratório usa o editor de código do Cloud Shell.
Inicie o editor de código do Cloud Shell. No Cloud Shell, clique em Abrir editor (um ícone de lápis) para iniciar o editor de código.
Observação: o editor de código substitui o terminal. Para voltar ao terminal depois, selecione a opção Abrir terminal.
Verifique o código e a estrutura de pastas. No editor de código do Cloud Shell, navegue até training-data-analyst/courses/developingapps/v1.3/java/kubernetesengine/start.
Observação: na pasta `kubernetesengine`, confira a pasta `end`. A pasta `end` tem os mesmos arquivos que a pasta `start`, mas os que estão na pasta `end` incluem o código completo necessário para executar o laboratório.
A estrutura de pastas do aplicativo de teste agora reflete como ele é implantado no Kubernetes Engine.
A pasta frontend: contém a saída empacotada para o aplicativo da Web.
A pasta backend: contém a saída empacotada para o aplicativo do console.
Dockerfile nas pastas frontend e backend: arquivos de configuração do Docker. Por enquanto, vazio.
*.yaml: arquivo de configuração do Kubernetes Engine.
No Cloud Shell, volte para o terminal e use o seguinte comando para copiar a saída jar do aplicativo de frontend para a pasta frontend:
cp ./target/quiz-frontend-0.0.1.jar ./frontend/
Configure o aplicativo de back-end do teste:
mvn package -f pom-backend.xml
Copie o jar de saída do aplicativo de back-end na pasta backend:
cp ./target/quiz-backend-0.0.1.jar ./backend/
Tarefa 2: como criar um cluster do Kubernetes Engine
Nesta seção, você vai criar um cluster do Google Kubernetes Engine para hospedar o aplicativo de teste.
No Console, clique em Menu de navegação > Kubernetes Engine > Clusters.
Em seguida, clique em Criar.
Selecione Configurar para o GKE Standard.
Para configurar o cluster, use os valores especificados para as propriedades listadas na tabela a seguir. Mantenha os valores padrão para as propriedades não listadas:
Em Noções básicas sobre clusters:
Propriedade
Valor
Name
quiz-cluster
Zone
us-central1-b
Expanda default-pool.
Em Segurança selecione Permitir acesso completo a todas as APIs do Cloud.
Clique em Criar. O provisionamento do cluster levará alguns minutos.
Conectar ao cluster
Quando o cluster estiver pronto, clique nos três pontos verticais e selecione Connect.
Em Connect to the cluster, copie o primeiro comando para a área de transferência.
Clique em OK para fechar a janela "Conectar ao cluster".
O comando está no seguinte formato: gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project <Project-ID>.
Copie o comando no Cloud Shell e pressione Enter.
Ou clique em Executar no Cloud Shell e, em seguida, pressione Enter.
Liste os pods no cluster.
kubectl get pods
A resposta deve indicar que não há pods no cluster.
Ela confirma que você configurou a segurança para que a ferramenta de linha de comando kubectl execute operações no cluster.
Tarefa 3: criar imagens Docker usando o Cloud Build
Nesta seção, você vai criar um Dockerfile para o front-end e back-end do aplicativo e usar o Cloud Build para criar imagens e armazená-las no Container Registry.
Criar o Dockerfile para o front-end
No editor de código do Cloud Shell, em Abrir editor, abra frontend/Dockerfile.
Copie e cole o seguinte conteúdo em frontend/Dockerfile:
Ele é composto por uma série de comandos do Dockerfile.
O primeiro comando, FROM gcr.io/google_appengine/jetty9, inicializa a criação de uma imagem do Docker personalizada usando a imagem do Google App Engine Jetty 9, gcr.io/google_appengine/jetty9, como ponto de partida.
O segundo comando, VOLUME /tmp, cria um volume no sistema de arquivos do contêiner com o caminho /tmp.
O terceiro comando, ADD ./quiz-frontend-0.0.1.jar /app.jar, adiciona o arquivo Jar, uiz-frontend-0.0.1.jar para o front-end gerado pelo processo de empacotamento do Maven como parte do processo de build.
O quarto e último comando, CMD java -jar /app.jar, é executado quando o contêiner é iniciado.
Crie o Dockerfile para o back-end
O dockerfile para o back-end é criado da mesma maneira que o front-end, porém o arquivo jar é adicionado ao back-end.
No editor de código do Cloud Shell, abra o backend/Dockerfile.
Copie e cole o seguinte conteúdo em backend/Dockerfile:
No Console, clique em Menu de navegação > Container Registry. Duas pastas aparecerão: quiz-frontend e quiz-backend.
Clique em quiz-frontend. Serão exibidos o nome (um hash), as tags (mais recentes) e outros detalhes da imagem.
Tarefa 5: criar recursos de implantação e serviço do Kubernetes
Nesta seção, você vai modificar os arquivos de modelo yaml, que contêm a especificação dos recursos de implantação e serviço do Kubernetes, e criar os recursos no cluster do Kubernetes Engine.
Crie um arquivo de implantação do Kubernetes
No editor de código, abra o arquivo frontend-deployment.yaml. A estrutura do arquivo já foi criada para você. Agora substitua os marcadores pelos valores do projeto.
Substitua os marcadores no arquivo frontend-deployment.yaml usando os seguintes valores:
Marcador (Nome)
Valor
[GCLOUD_PROJECT]
ID do projeto do GCP (exiba o ID do projeto digitando echo $GCLOUD_PROJECT no Cloud Shell)
[GCLOUD_BUCKET]
ID do bucket do Cloud Storage para o bucket de mídia do projeto O ID do bucket é [GCP_Project_ID]-media.
[FRONTEND_IMAGE_IDENTIFIER]
Imagem do front-end identificada no formulário gcr.io/[GCP_Project_ID]/quiz-frontend
A implantação do front-end de teste provisiona três réplicas da imagem de front-end do Docker nos pods do Kubernetes, distribuídas nos três nós do cluster do Kubernetes Engine.
Salve o arquivo.
Abra o arquivo backend-deployment.yaml e substitua os marcadores no arquivo backend-deployment.yaml usando os seguintes valores:
Marcador (Nome)
Valor
[GCLOUD_PROJECT]
ID do projeto do GCP (ou use echo $GCLOUD_PROJECT)
[GCLOUD_BUCKET]
ID do bucket do Cloud Storage para o bucket de mídia do projeto Este será o mesmo bucket usado em frontend-deployment.yaml (O ID do bucket é [GCP_Project_ID]-media.)
[BACKEND_IMAGE_IDENTIFIER]
Imagem de back-end identificada no formulário gcr.io/[GCP_Project_ID]/quiz-backend
A implantação do quiz-backend provisiona uma réplica da imagem de back-end do Docker nos pods do Kubernetes, posicionada em um dos três nós do cluster do Kubernetes Engine.
Salve o arquivo.
Revise o conteúdo do arquivo frontend-service.yaml.
Observação: o serviço apresenta a implantação do front-end usando um balanceador de carga, que envia solicitações de clientes para as três réplicas do pod de front-end.
Execute os arquivos de implantação e serviço
No Cloud Shell, provisione a implantação do front-end de teste:
kubectl create -f ./frontend-deployment.yaml
Provisione a implantação do back-end de teste:
kubectl create -f ./backend-deployment.yaml
Provisione o serviço do front-end de teste:
kubectl create -f ./frontend-service.yaml
Cada comando provisiona recursos no Kubernetes Engine. Este processo levará alguns minutos para ser concluído.
Tarefa 6: testar o aplicativo
Nesta seção, revise os pods e os serviços implantados e navegue até o aplicativo de teste.
Revise os recursos implantados
No Console, clique em Menu de navegação > Kubernetes Engine > Cargas de trabalho. Você verá dois itens: quiz-frontend e quiz-backend.
O status do pod poderá aparecer como OK ou em processo de criação.
Clique em quiz-frontend para acessar as informações gerais do quiz-frontend.
Role para baixo até encontrar Pods gerenciados.
O status do balanceador de carga quiz-frontend poderá aparecer como OK ou em processo de criação.
Aguarde até que o serviço esteja OK antes de continuar.
Você verá um endpoint do endereço IP quando o serviço estiver pronto.
Em Como expor serviços, em Endpoints, selecione o endereço IP e abra em uma nova guia do navegador.
Faça um teste para verificar se o aplicativo funciona conforme o esperado.
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.
Neste laboratório, você vai implantar o aplicativo de teste no Kubernetes Engine usando os recursos do Google Cloud Platform, como o Container Builder e o Container Registry, além dos recursos do Kubernetes, como implantações, pods e serviços.
Duração:
Configuração: 0 minutos
·
Tempo de acesso: 120 minutos
·
Tempo para conclusão: 120 minutos