arrow_back

Desenvolvimento de aplicativos: como implantar aplicativos no Kubernetes Engine - Java

Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Desenvolvimento de aplicativos: como implantar aplicativos no Kubernetes Engine - Java

Laboratório 2 horas universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Informações gerais

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.

  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.

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: preparar o aplicativo de teste

Nesta seção, você irá clonar o repositório Git que contém o aplicativo de teste, configurar as variáveis de ambiente e executar o aplicativo.

Clonar o código-fonte no Cloud Shell

  1. Digite o comando abaixo no Cloud Shell para clonar o repositório do laboratório:
git clone --depth=1 https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Crie um link flexível para seu diretório de trabalho:
ln -s ~/training-data-analyst/courses/developingapps/v1.3/java/kubernetesengine ~/kubernetesengine

Configurar o aplicativo de teste

  1. Altere para o diretório que contém os arquivos de trabalho:
cd ~/kubernetesengine/start
  1. 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.

  1. 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.

Ícone do editor do Cloud Shell

Observação: o editor de código substitui o terminal. Para voltar ao terminal depois, selecione a opção Abrir terminal.
  1. 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.
  1. 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/
  2. Configure o aplicativo de back-end do teste:

    mvn package -f pom-backend.xml
  3. 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.

  1. No Console, clique em Menu de navegação > Kubernetes Engine > Clusters.

  2. Em seguida, clique em Criar.

  3. Selecione Configurar para o GKE Standard.

  4. 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
  5. Expanda default-pool.

  6. Em Segurança selecione Permitir acesso completo a todas as APIs do Cloud.

  7. Clique em Criar. O provisionamento do cluster levará alguns minutos.

Conectar ao cluster

  1. Quando o cluster estiver pronto, clique nos três pontos verticais e selecione Connect.

    Menu suspenso "Mais opções" expandido com a opção "Connect" em destaque

  2. Em Connect to the cluster, copie o primeiro comando para a área de transferência.

  3. 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>.

  1. Copie o comando no Cloud Shell e pressione Enter.

    Ou clique em Executar no Cloud Shell e, em seguida, pressione Enter.

  2. 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

  1. No editor de código do Cloud Shell, em Abrir editor, abra frontend/Dockerfile.

  2. Copie e cole o seguinte conteúdo em frontend/Dockerfile:

FROM gcr.io/google_appengine/jetty9 VOLUME /tmp ADD ./quiz-frontend-0.0.1.jar /app.jar CMD java -jar /app.jar
  1. Salve o arquivo.

O que o script faz:

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.

  1. No editor de código do Cloud Shell, abra o backend/Dockerfile.

  2. Copie e cole o seguinte conteúdo em backend/Dockerfile:

FROM gcr.io/google_appengine/jetty9 VOLUME /tmp ADD ./quiz-backend-0.0.1.jar /app.jar CMD java -jar /app.jar
  1. Salve o arquivo.

Tarefa 4: criar imagens Docker com o Cloud Build

  1. No Cloud Shell, em Abrir terminal, insira o seguinte comando para criar a imagem Docker de front-end:

    gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-frontend ./frontend/

    Os arquivos são armazenados no Cloud Storage e uma imagem do Docker é criada e armazenada no Container Registry. Isso levará alguns segundos.

  2. Crie a imagem de back-end do Docker:

    gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-backend ./backend/
  3. No Console, clique em Menu de navegação > Container Registry. Duas pastas aparecerão: quiz-frontend e quiz-backend.

  4. 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

  1. 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.

  2. 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

    Substitua apenas os valores que estão entre [].

    O arquivo yaml resultante parece com o seguinte:

    apiVersion: apps/v1beta1 kind: Deployment metadata: name: quiz-frontend labels: app: quiz-app spec: replicas: 3 template: metadata: labels: app: quiz-app tier: frontend spec: containers: - name: quiz-frontend image: gcr.io/qwiklabs-gcp-04-3ad1f39f2114/quiz-frontend imagePullPolicy: Always ports: - name: http-server containerPort: 8080 env: - name: GCLOUD_PROJECT value: qwiklabs-gcp-04-3ad1f39f2114 - name: GCLOUD_BUCKET value: qwiklabs-gcp-04-3ad1f39f2114-media

    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.

  3. Salve o arquivo.

  4. 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.

  5. Salve o arquivo.

  6. 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

  1. No Cloud Shell, provisione a implantação do front-end de teste:

    kubectl create -f ./frontend-deployment.yaml
  2. Provisione a implantação do back-end de teste:

    kubectl create -f ./backend-deployment.yaml
  3. 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

  1. 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.

  2. Clique em quiz-frontend para acessar as informações gerais do quiz-frontend.

  3. 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.

  4. Em Como expor serviços, em Endpoints, selecione o endereço IP e abra em uma nova guia do navegador.

  5. 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.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

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

One lab at a time

Confirm to end all existing labs and start this one

Setup your console before you begin

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.