Visão geral
Neste laboratório, vamos usar o Gemini, uma ferramenta de colaboração com tecnologia de IA do Google Cloud, para analisar registros e configurar um ambiente de build para um conjunto de microsserviços no Google Kubernetes Engine (GKE).
O laboratório é voltado para engenheiros com experiência em ambientes de DevOps.
Observação: a Duet AI agora é o Gemini, nosso modelo de última geração. Este laboratório foi atualizado para refletir essa mudança. Ao seguir as instruções dele, as referências à Duet AI na interface do usuário ou na documentação devem ser tratadas como referentes ao Gemini.
Observação: como uma tecnologia em estágio inicial, o Gemini pode gerar uma saída plausível, mas que é factualmente incorreta. Recomendamos que você valide todas as saídas antes de usá-las. Para mais informações, consulte Gemini para o Google Cloud e IA responsável.
Objetivos
Neste laboratório, você vai aprender a fazer o seguinte:
- Criar um cluster do GKE com a ajuda do Gemini;
- Implantar um conjunto de microsserviços no GKE;
- Identificar e entender os registros do aplicativo com a ajuda do Gemini;
- Usar o Gemini para aprender a criar um ambiente de build privado.
Configuração
Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.
-
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento.
No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}}
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}}
Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual que contém ferramentas para desenvolvedores. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece aos seus recursos do Google Cloud acesso às linhas de comando. A gcloud
é a ferramenta ideal para esse tipo de operação no Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
-
No painel de navegação do Console do Google Cloud, clique em Ativar o Cloud Shell (
).
-
Clique em Continuar.
O provisionamento e a conexão do ambiente podem demorar um pouco. Quando esses processos forem concluídos, você já vai ter uma autenticação, e o projeto estará definido com seu PROJECT_ID. Por exemplo:

Exemplo de comandos
gcloud auth list
(Saída)
Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
(Exemplo de saída)
Credentialed accounts:
- google1623327_student@qwiklabs.net
gcloud config list project
(Saída)
[core]
project = <project_ID>
(Exemplo de saída)
[core]
project = qwiklabs-gcp-44776a13dea667a6
Tarefa 1: configurar o ambiente e a conta do Gemini
-
Faça login no console do Google Cloud com as credenciais do laboratório e abra a janela do terminal do Cloud Shell.
-
Para definir as variáveis de ambiente com o ID do projeto e a região, execute estes comandos no Cloud Shell:
PROJECT_ID=$(gcloud config get-value project)
REGION={{{project_0.default_region|set at lab start}}}
echo "PROJECT_ID=${PROJECT_ID}"
echo "REGION=${REGION}"
-
Para armazenar a conta de usuário do Google conectada em uma variável de ambiente, execute o seguinte comando:
USER=$(gcloud config get-value account 2> /dev/null)
echo "USER=${USER}"
-
Ative a API Cloud AI Companion para o Gemini:
gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}
-
Para usar o Gemini, conceda os papéis necessários do IAM à conta de usuário do Qwiklabs do Google Cloud:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer
Ao adicionar esses papéis, o usuário pode contar com o suporte do Gemini.
Para conferir o objetivo, clique em Verificar meu progresso.
Ative as APIs necessárias e conceda os papéis do IAM pertinentes.
Tarefa 2: configurar o Google Kubernetes Engine
Nesta tarefa, você vai ativar a API Google Kubernetes Engine (GKE), atribuir a você as permissões necessárias para gerenciar o cluster do GKE e, por fim, criar o cluster.
-
Execute o seguinte comando no Cloud Shell para ativar a API GKE:
gcloud services enable container.googleapis.com --project ${PROJECT_ID}
-
Para conceder as permissões de administrador de usuários do GKE, execute:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/container.admin
Você pode criar um cluster zonal do GKE para executar os microsserviços. O Gemini ensina como fazer isso.
-
No console do Google Cloud, se você não vir o menu Abrir ou fechar o chat do Gemini AI (
), atualize a página.
-
Para abrir o painel do Gemini, vá até o menu de cima do console do Google Cloud e clique em Abrir ou fechar o chat do Gemini AI (
). Se necessário, clique em Ativar.
-
Clique em Iniciar a conversa.
Observação: se o botão Iniciar a conversa não estiver disponível, atualize a página e abra o Gemini outra vez.
-
Para o comando do Gemini, digite o texto abaixo e clique em Enviar comando (
):
Qual o comando da gcloud para criar um cluster zonal do GKE com uma quantidade de nós e tipo de máquina personalizados?
O Gemini gera uma resposta parecida com esta:
gcloud container clusters create <NOME_DO_CLUSTER> \
--project=ID_DO_PROJETO \
--zone=ZONA_DO_COMPUTE \
--num-nodes=NÚMERO_DE_NÓS \
--machine-type=TIPO_DE_MÁQUINA
-
Para criar um cluster zonal do GKE, execute o comando a seguir:
gcloud container clusters create test \
--project={{{project_0.project_id | set at lab start}}} \
--zone={{{project_0.default_zone | set at lab start}}} \
--num-nodes=3 \
--machine-type=e2-standard-4
A criação do cluster leva alguns minutos. Aguarde a conclusão do comando.
Para conferir o objetivo, clique em Verificar meu progresso.
Configure o Google Kubernetes Engine.
.
Tarefa 3: usar a kubectl para implantar um conjunto de microsserviços
Nesta tarefa, você vai clonar um repositório com o código de vários microsserviços que compõem o aplicativo de uma loja on-line e vai usar a kubectl para implantar esses microsserviços no cluster do GKE.
Confira o diagrama da arquitetura do aplicativo:

-
Para clonar o repositório no Cloud Shell, execute o seguinte comando:
git clone --depth=1 https://github.com/GoogleCloudPlatform/microservices-demo
Nele está o código-fonte de cada microsserviço do aplicativo.
-
Para implantar os microsserviços no GKE, execute os seguintes comandos:
cd ~/microservices-demo
kubectl apply -f ./release/kubernetes-manifests.yaml
-
Para verificar o status da implantação até que cada microsserviço fique disponível, repita o comando:
kubectl get deployments
Assim que cada microsserviço estiver disponível, o valor correspondente que aparece na coluna Available vai ser definido como 1. O comando kubectl get deployments
vai ficar parecido com este:
NAME READY UP-TO-DATE AVAILABLE AGE
adservice 1/1 1 1 94s
cartservice 1/1 1 1 96s
checkoutservice 1/1 1 1 97s
currencyservice 1/1 1 1 95s
emailservice 1/1 1 1 97s
frontend 1/1 1 1 97s
loadgenerator 1/1 1 1 95s
paymentservice 1/1 1 1 96s
productcatalogservice 1/1 1 1 96s
recommendationservice 1/1 1 1 97s
redis-cart 1/1 1 1 94s
shippingservice 1/1 1 1 95s
O acesso ao aplicativo é feito pelo endereço IP externo dele.
-
Para definir o URL do aplicativo, execute o seguinte comando:
echo "http://$(kubectl get service frontend-external -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')"
Observação: pode levar alguns minutos até que o endereço IP externo fique disponível. Execute o comando até que o URL inclua o endereço IP.
-
Para abrir o aplicativo na guia do navegador, mantenha a tecla Control (Windows e Linux) ou Command (macOS) pressionada e, em seguida, clique no URL do Cloud Shell.
A página inicial do aplicativo é aberta, e você pode testar o app.
Observação: se aparecer um pop-up avisando que a conexão não é segura, clique em Ir para o site.
Para conferir o objetivo, clique em Verificar meu progresso.
Use a kubectl para implantar um conjunto de microsserviços.
Tarefa 4: usar o Gemini para entender os registros de cargas de trabalho no GKE
Imagine que você trabalha com engenharia de DevOps e herdou um conjunto de microsserviços que precisam ser gerenciados. Eles são executados em um cluster do GKE. Para entender o ambiente, você decide analisar os registros de vários microsserviços.
Nesta tarefa, você vai usar o Gemini para criar consultas e, assim, pesquisar registros específicos e explicar as entradas deles.
-
Na barra de título do console do Google Cloud, digite Análise de registros no campo Pesquisar e clique em Análise de registros nos resultados da pesquisa.
-
Para o comando do Gemini, digite o texto abaixo e clique em Enviar comando (
):
Qual a consulta da Análise de registros para pesquisar registros de pods em um namespace chamado "default" em um cluster do GKE chamado "test"?
Você vai receber uma resposta com uma consulta parecida com a seguinte:
resource.type="k8s_container"
resource.labels.cluster_name="test"
resource.labels.namespace_name="default"
Observação: se a consulta do Gemini for diferente da resposta acima, use a consulta indicada aqui.
-
Na caixa Consulta, cole a consulta e clique em Executar consulta.
As mensagens de registro são filtradas, exibindo apenas as mensagens do cluster do GKE test. Confira as entradas de registro.
-
Para saber mais sobre uma entrada, abra-a e clique em Explicar esta entrada de registro.
Por exemplo, ao clicar nesse botão para saber sobre a entrada GET /product/0PUK6V6EV0
, o Gemini gera uma resposta parecida com a seguinte:
• Esta é a entrada de registro de um contêiner do Kubernetes chamado "main".
• O contêiner é parte do pod "loadgenerator-84cc74dcd-jf6dr" do namespace "default".
• O pod está sendo executado no cluster "test", na zona "us-west1-a".
• A entrada de registro é uma solicitação HTTP para "/product/0PUK6V6EV0" que levou 49 milissegundos para ser processada.
• A solicitação gerou a resposta 200 OK e 40 bytes de dados foram enviados ao cliente.
Depois de conferir as explicações dos registros das cargas de trabalho, você decide configurar a infraestrutura para criar as imagens do futuro contêiner da equipe em um conjunto de workers privados sem acesso à Internet.
Tarefa 5: usar o Gemini para criar um ambiente de build privado para imagens de contêiner
Nesta tarefa, você vai usar o Gemini para criar e executar um ambiente de build privado.
Você é responsável por configurar um sistema de build para um projeto sensível. Você ficou sabendo que o Cloud Build é um serviço que executa builds no Google Cloud e que ele usa pools de workers para executar os builds.
-
Para saber mais sobre os pools de workers, insira o seguinte comando no chat do Gemini:
O que é o pool de workers do Cloud Build?
O Gemini gera uma resposta parecida com a seguinte:
O pool de workers do Cloud Build é um grupo de máquinas virtuais dedicadas a executar os builds. Esses pools são criados em uma região e zona específicas, podendo ser privados ou públicos.
Os pools privados só podem ser acessados pelo projeto e oferecem vários benefícios, como:
• Isolamento: os builds são executados em máquinas dedicadas, ou seja, as outras cargas de trabalho executadas no mesmo projeto não vão afetar esses builds.
• Segurança: os pools privados são mais seguros do que os públicos, já que não podem ser acessados por outros projetos.
• Desempenho: os pools privados oferecem melhor desempenho em comparação aos públicos por não serem compartilhados com outros projetos.
A segurança que os pools de workers privados oferecem é uma ótima opção para o projeto. Se o acesso à Internet pública estiver bloqueado, fica ainda melhor.
-
No chat do Gemini, insira o seguinte comando:
É possível criar um pool de workers privado sem acesso à Internet pública?
O Gemini gera uma resposta parecida com esta:
Sim, é possível criar um pool de workers privado sem acesso à Internet pública, que é conhecido como "pool privado sem saída pública".
Para criar um pool desse tipo, use a flag "--no-public-egress".
Ótimo, parece ser bem seguro. Você percebe que os workers de um pool privado não têm acesso a repositórios de pacotes públicos como PyPI. Sabendo que vai ser preciso hospedar pacotes privados, você se pergunta se pode usar o Artifact Registry.
-
No chat do Gemini, insira o seguinte comando:
Se eu criar um pool privado sem saída pública, posso usar o Artifact Registry para hospedar os pacotes de forma particular e acessá-los a partir de um pool privado?
O Gemini gera uma resposta parecida com esta:
Sim, é possível usar o Artifact Registry para hospedar os pacotes de forma particular e acessá-los a partir de um pool privado sem saída pública.
Para isso, crie um repositório privado do Artifact Registry e conceda ao pool privado acesso ao repositório adicionando a conta de serviço do pool privado como membro do repositório com o papel de Leitor do Artifact Registry.
Depois de criar o repositório e conceder acesso ao pool privado, envie os pacotes ao repositório e extraia-os do pool privado.
Vamos deixar o Gemini gerar o comando da gcloud CLI para criar o pool privado.
-
No chat do Gemini, insira o seguinte comando:
Qual é o comando da gcloud para criar um pool de workers privado sem saída pública?
O Gemini gera um comando parecido com este:
gcloud builds worker-pools create NOME_DO_POOL \
--project=ID_DO_PROJETO \
--region=REGIÃO \
--no-public-egress
-
Para criar o pool privado, execute o seguinte comando:
gcloud builds worker-pools create pool-test \
--project={{{project_0.project_id|set at lab start}}} \
--region={{{project_0.default_region|set at lab start}}} \
--no-public-egress
É provável que o ambiente do laboratório retorne uma mensagem de erro parecida com a seguinte:
ERROR: (gcloud.builds.worker-pools.create) FAILED_PRECONDITION: project "{{{project_0.project_id|set at lab start}}}" is unable to use private pools
Ignore a mensagem.
Observação: no momento, os pools privados estão desabilitados no ambiente do laboratório. O comando para criar pools privados funciona em projetos fora desse ambiente.
Agora vamos perguntar ao Gemini como criar um repositório privado do Docker.
-
No chat do Gemini, insira o seguinte comando:
Como usar a gcloud para criar um repositório privado do Docker para imagens de contêiner no Artifact Registry?
O Gemini gera uma resposta que inclui um comando da gcloud CLI parecido com este:
gcloud artifacts repositories create REPOSITÓRIO \
--repository-format=docker \
--location=REGIÃO \
--description="DESCRIÇÃO"
em que:
• REPOSITÓRIO é o nome do repositório privado do Docker a ser criado;
• REGIÃO é a região em que o repositório é criado;
• DESCRIÇÃO é a descrição do repositório.
-
Para criar o repositório, execute o comando a seguir:
gcloud artifacts repositories create my-repo \
--repository-format=docker \
--location={{{project_0.default_region|set at lab start}}} \
--description="My private Docker repository"
O repositório é criado.
Para conferir o objetivo, clique em Verificar meu progresso.
Crie um repositório.
Finalize o laboratório
Após terminar seu laboratório, clique em End Lab. O Qwiklabs removerá os recursos usados e limpará a conta para você.
Você poderá avaliar sua experiência neste laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Submit.
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 Support.
Parabéns!
Neste laboratório, você aprendeu a:
- Criar um cluster do GKE com a ajuda do Gemini;
- Implantar um conjunto de microsserviços no GKE;
- Identificar e entender os registros do aplicativo com a ajuda do Gemini;
- Usar o Gemini para aprender a criar um ambiente de build privado.
Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.