Carregando...
Nenhum resultado encontrado.

Aplique suas habilidades no console do Google Cloud

Acesse mais de 700 laboratórios e cursos

Orquestração na nuvem com o Kubernetes

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

GSP021

Logotipo dos laboratórios autoguiados do Google Cloud

Informações gerais

O Kubernetes é um projeto de código aberto (disponível em kubernetes.io) que pode ser executado em diversos ambientes, de laptops a clusters com vários nós de alta disponibilidade, de nuvens públicas a implantações locais e de máquinas virtuais a bare metal.

Neste laboratório, será usado um ambiente gerenciado, como o Kubernetes Engine, para você se concentrar mais em testar o Kubernetes e não ter que configurar a infraestrutura. O Kubernetes Engine é um ambiente gerenciado para implantação de aplicativos conteinerizados. Ele inclui as mais recentes inovações em produtividade para desenvolvedores, eficiência de recursos, operações automatizadas e a flexibilidade do código aberto para acelerar seu tempo de lançamento.

Objetivos

Neste laboratório, você vai aprender a:

  • provisionar um cluster completo do Kubernetes usando o Kubernetes Engine;
  • implantar e gerenciar os contêineres do Docker usando kubectl;
  • dividir um aplicativo em microsserviços usando as implantações e serviços do Kubernetes.

Configuração e requisitos

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você 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
  2. 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.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Username"}}}

    Você também encontra o nome de usuário no painel Detalhes do Laboratório.

  4. Clique em Próxima.

  5. Copie a Senha abaixo e cole na caixa de diálogo de Olá.

    {{{user_0.password | "Password"}}}

    Você também encontra a senha no painel Detalhes do Laboratório.

  6. Clique em Próxima.

    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.
  7. 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: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar. Ícone do menu de navegação e campo de pesquisa

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias 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. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

  2. Clique nas seguintes janelas:

    • Continue na janela de informações do Cloud Shell.
    • Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Google Kubernetes Engine

  1. No ambiente do Cloud Shell, digite o seguinte comando para definir a zona:
gcloud config set compute/zone {{{project_0.default_zone|Zone}}}
  1. Inicie um cluster para usar neste laboratório:
gcloud container clusters create io --zone {{{project_0.default_zone|Zone}}} Você será automaticamente autenticado no seu cluster após a criação. Se, por algum motivo, você perder a conexão com o Cloud Shell, execute o comando gcloud container clusters get-credentials io para fazer a autenticação novamente. Observação: a criação do cluster vai levar algum tempo, porque o Kubernetes Engine vai provisionar algumas máquinas virtuais em segundo plano para você usar.

Tarefa 1. Acessar o exemplo de código

Para conseguir o código, copie o exemplo de código de um bucket do Google Cloud Storage.

  1. No Cloud Shell, copie o código-fonte da linha de comando do Cloud Shell:
gcloud storage cp -r gs://spls/gsp021/* .
  1. Mude para o diretório deste laboratório:
cd orchestrate-with-kubernetes/kubernetes
  1. Liste os arquivos para saber com qual deles você está trabalhando:
ls

O exemplo tem o seguinte layout:

deployments/ /* Deployment manifests */ ... nginx/ /* nginx config files */ ... pods/ /* Pod manifests */ ... services/ /* Services manifests */ ... tls/ /* TLS certificates */ ... cleanup.sh /* Cleanup script */

Agora que você tem o código, é hora de começar a usar o Kubernetes.

Tarefa 2. Uma demonstração rápida do Kubernetes

A maneira mais fácil de começar a usar o Kubernetes é com o comando kubectl create.

  1. Use-o para iniciar uma única instância do contêiner nginx:
kubectl create deployment nginx --image=nginx:1.27.0

O Kubernetes criou uma implantação. Há mais informações sobre implantações mais adiante. Por enquanto, tudo o que você necessita saber é que as implantações mantêm os pods funcionando mesmo quando há falha nos nós em que eles são executados.

No Kubernetes, todos os contêineres são executados em um pod.

  1. Use o comando kubectl get pods para acessar o contêiner nginx em execução:
kubectl get pods
  1. Assim que o contêiner nginx estiver com o status "Em execução", ele poderá ser exposto fora do Kubernetes usando o comando kubectl expose:
kubectl expose deployment nginx --port 80 --type LoadBalancer

O que aconteceu? O Kubernetes criou, em segundo plano, um balanceador de carga externo com um endereço IP público anexado a ele. Qualquer cliente que alcançar esse endereço IP público será encaminhado para os pods que estão por trás do serviço. Nesse caso, seria o pod do nginx.

  1. Liste os serviços usando o comando kubectl get services:
kubectl get services Observação: talvez leve alguns segundos para que o campo ExternalIP do serviço seja preenchido. Isso é normal. Basta executar novamente o comando kubectl get services em intervalos de alguns segundos até o campo ser preenchido.
  1. Adicione o IP externo a esse comando para acessar o contêiner Nginx remotamente:
curl http://<External IP>:80

Pronto! O Kubernetes oferece suporte para um fluxo de trabalho fácil e pronto para uso com os comandos kubectl run e expose.

Teste a tarefa concluída

Clique em Verificar meu progresso abaixo para conferir seu progresso no laboratório. Se você criou um cluster do Kubernetes e implantou um contêiner do Nginx, vai aparecer uma pontuação de avaliação.

Criar um cluster do Kubernetes e iniciar um contêiner do Nginx

Depois desse tour rápido pelo Kubernetes, é hora de você conhecer melhor cada um dos componentes e abstrações.

Tarefa 3. Sobre os pods

A parte essencial do Kubernetes está no Pod.

Os pods representam e retêm uma coleção de um ou mais contêineres. Geralmente, quando há vários contêineres com forte dependência uns dos outros, você os empacota dentro de um único pod.

O exemplo a seguir mostra um pod que contém os contêineres monolítico e nginx.

Pod com os contêineres monolítico e nginx

Os pods têm também Volumes. Volumes são discos de dados que duram o tempo que durarem os pods e podem ser usados pelos contêineres desses pods. Os pods fornecem um namespace compartilhado do conteúdo deles, ou seja, os dois contêineres dentro do nosso exemplo de pod podem se comunicar entre si e também compartilham os volumes anexados.

Os pods compartilham também um namespace de rede. Isso significa que há um endereço IP por pod.

A seguir, saiba mais sobre pods.

Tarefa 4. Criar pods

Os pods podem ser criados com arquivos de configuração. Analise o arquivo de configuração do pod fortune-app.

  1. Acesse o diretório:
cd ~/orchestrate-with-kubernetes/kubernetes
  1. Execute este comando para conferir um arquivo de configuração:
cat pods/fortune-app.yaml

A resposta mostra o arquivo de configuração aberto:

apiVersion: v1 kind: Pod metadata: name: fortune-app labels: app: fortune-app spec: containers: - name: fortune-app image: "us-central1-docker.pkg.dev/qwiklabs-resources/gsp-021-lab-images/fortune-app:1.0.0" ports: - name: http containerPort: 8080 resources: limits: cpu: 0.2 memory: "20Mi"

Há algumas coisas para serem observadas aqui:

  • O pod é composto de um contêiner (o fortune-app).
  • A porta 8080 será aberta para o tráfego http.
  1. Crie o pod fortune-app usando kubectl:
kubectl create -f pods/fortune-app.yaml
  1. Analise os pods. Use o comando kubectl get pods para listar todos os pods em execução no namespace padrão:
kubectl get pods Observação: pode levar alguns segundos até que o pod fortune-app esteja em pleno funcionamento. A imagem do contêiner precisa ser extraída do Artifact Registry para que ele possa ser executado.
  1. Quando o pod estiver funcionando, use o comando kubectl describe para receber mais informações sobre o pod fortune-app:
kubectl describe pods fortune-app

Você vai observar várias informações sobre o pod fortune-app, incluindo o endereço IP do pod e o log de eventos. Essas informações são úteis na solução de problemas.

O Kubernetes facilita a criação de pods, bastando descrevê-los nos arquivos de configuração. Ele também simplifica a visualização das informações sobre eles quando estão em execução. Agora, você vai conseguir criar todos os pods necessários para a implantação.

Tarefa 5. Interagir com pods

Por padrão, os pods recebem um endereço IP privado e não podem ser acessados fora do cluster. Use o comando kubectl port-forward para mapear uma porta local a uma porta dentro do pod fortune-app.

Observação: agora você vai trabalhar em mais de uma guia do Cloud Shell para configurar a comunicação entre os pods. Qualquer comando executado em um segundo ou terceiro shell será indicado nas instruções.
  1. Abra um segundo terminal do Cloud Shell. Agora você tem dois terminais, um para executar o comando kubectl port-forward e o outro para emitir comandos curl.

  2. No 2º terminal, execute este comando para configurar o encaminhamento de portas:

kubectl port-forward fortune-app 10080:8080
  1. No 1º terminal, comece a se comunicar com seu pod usando curl:
curl http://127.0.0.1:10080

Você recebeu um cookie fortune do seu contêiner!

  1. Agora use o comando curl para observar o que acontece quando você alcança um endpoint seguro. Este endpoint requer autenticação.
curl http://127.0.0.1:10080/secure

Você vai receber um erro "Não autorizado", o que é esperado.

  1. Para conseguir um token de autenticação do app, faça login:
curl -u user http://127.0.0.1:10080/login
  1. No prompt de login, use a senha supersecreta password para entrar.

Fazer login vai retornar um token JWT.

  1. Como o Cloud Shell não lida muito bem com a cópia de strings longas, crie uma variável de ambiente para o token.
TOKEN=$(curl -u user http://127.0.0.1:10080/login | jq -r '.token')
  1. Digite novamente a senha supersecreta password quando for solicitado.

  2. Use este comando para copiar e usar o token de acesso ao endpoint seguro com curl:

curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:10080/secure

Nesse momento, você vai receber um fortune do aplicativo informando que está tudo certo novamente.

Você acessou o secure fortune!
  1. Use o comando kubectl logs para acessar os registros do pod fortune-app.
kubectl logs fortune-app
  1. Abra um 3º terminal e use a flag -f para receber um stream dos registros adicionados em tempo real:
kubectl logs -f fortune-app
  1. Agora se você usar curl no 1º terminal para interagir com o fortune-app, vai observar a atualização dos registros no 3º terminal:
curl http://127.0.0.1:10080
  1. Use o comando kubectl exec para executar um shell interativo no pod fortune-app. Isso é útil para solucionar problemas dentro de um contêiner:
kubectl exec fortune-app --stdin --tty -c fortune-app -- /bin/sh
  1. Por exemplo, quando há um shell em um contêiner do fortune-app, é possível testar a conectividade externa usando o comando ping:
ping -c 3 google.com
  1. Não esqueça de sair quando terminar esse shell interativo.
exit

Como você pode observar, a interação com os pods é tão fácil quanto usar o comando kubectl. Seja para acessar remotamente um contêiner ou abrir um shell de login, o Kubernetes fornece tudo o que você precisa para iniciar e seguir em frente.

Tarefa 6. Sobre os serviços

Os pods não foram criados para serem persistentes. Eles podem ser interrompidos ou iniciados por muitas razões, por exemplo, falha nas verificações de integridade ou de prontidão, o que gera um problema:

O que acontece quando você quer se comunicar com um conjunto de pods? Quando eles forem reiniciados, é possível que tenham endereço IP diferente.

É aqui que entram os Serviços. Eles fornecem endpoints estáveis para pods.

Os serviços aplicam rótulos para determinar os pods em que eles operam. Se os pods tiverem os rótulos corretos, serão automaticamente selecionados e expostos pelos serviços.

O nível de acesso de um serviço a um conjunto de pods depende do tipo de serviço. Atualmente, existem três tipos:

  • ClusterIP (interno) é o tipo padrão. Esse serviço só é visível dentro do cluster.
  • NodePort concede a cada nó do cluster um IP externamente acessível.
  • LoadBalancer adiciona um balanceador de carga do provedor de nuvem que encaminha o tráfego do serviço para os nós dentro dele.

Agora, você vai aprender a:

  • Criar um serviço
  • Usar seletores de rótulo para expor um conjunto limitado de pods externamente

Tarefa 7. Criar um serviço

Antes de criar serviços, crie um pod seguro que possa lidar com o tráfego HTTPS.

  1. Se você modificou diretórios, retorne para o diretório ~/orchestrate-with-kubernetes/kubernetes:
cd ~/orchestrate-with-kubernetes/kubernetes
  1. Conheça o arquivo de configuração do serviço secure fortune-app:
cat pods/secure-fortune.yaml
  1. Crie os pods de secure-fortune e os dados de configuração deles:
kubectl create secret generic tls-certs --from-file tls/ kubectl create configmap nginx-proxy-conf --from-file nginx/proxy.conf kubectl create -f pods/secure-fortune.yaml

Agora que você tem um pod secure, é hora de expor esse pod externamente. Para fazer isso, crie um serviço do Kubernetes.

  1. Conheça o arquivo de configuração do serviço fortune-app:
cat services/fortune-app.yaml (Output): kind: Service apiVersion: v1 metadata: name: "fortune-app" spec: selector: app: "fortune-app" secure: "enabled" ports: - protocol: "TCP" port: 443 targetPort: 443 nodePort: 31000 type: NodePort </ql-code-block output> Observação:

Há um seletor que é usado para localizar e expor automaticamente todos os pods com os rótulos "app: fortune-app e secure: enabled.

É preciso expor o nodeport aqui porque é assim que você encaminha o tráfego externo da porta 31000 para o nginx (na porta 443).
5. Use o comando kubectl create para criar o serviço fortune-app do arquivo de configuração: kubectl create -f services/fortune-app.yaml (Saída): service/fortune-app created

Teste a tarefa concluída

Clique em Verificar meu progresso abaixo para conferir seu progresso no laboratório. Se o serviço e os pods do fortune-app foram criados corretamente, você verá uma pontuação de avaliação.

Criar pods e serviços do fortune-app

Você está usando uma porta para expor o serviço. Isso significa que poderá haver colisões de portas se outro app tentar se vincular à porta 31000 em um de seus servidores.

Normalmente, o Kubernetes lida com essa atribuição de porta. Neste laboratório, você escolhe uma porta para facilitar a configuração das verificações de integridade mais tarde.

  1. Use o comando gcloud compute firewall-rules para permitir tráfego para o serviço fortune-app na nodeport exposta:
gcloud compute firewall-rules create allow-fortune-nodeport --allow tcp:31000

Teste a tarefa concluída

Clique em Verificar meu progresso abaixo para conferir seu progresso no laboratório. Se a regra de firewall para permitir tráfego TCP na porta 31000 foi criada corretamente, você terá uma pontuação de avaliação.

Permitir o tráfego para o serviço fortune-app na nodeport exposta

Agora que está tudo configurado, você pode acessar o serviço secure-fortune de fora do cluster sem usar o encaminhamento de portas.

  1. Escolha um endereço IP externo para um dos nós.
gcloud compute instances list
  1. Tente acessar o serviço de secure-fortune usando curl:
curl -k https://<EXTERNAL_IP>:31000

Ops. O tempo limite se esgotou. O que deu errado?

Observação: é hora de fazer um teste de conhecimento rápido.

Use os seguintes comandos para responder às perguntas abaixo:

kubectl get services fortune-app

kubectl describe services fortune-app

Perguntas:

  • Por que você não recebeu uma resposta do serviço fortune-app?
  • Quantos endpoints o serviço fortune-app tem?
  • Quais rótulos um pod precisa ter para ser selecionado pelo serviço fortune-app?
  • Dica: isso está relacionado a rótulos. Você vai corrigir o problema na próxima seção.

    Tarefa 8. Adicionar rótulos aos pods

    No momento, o serviço fortune-app não tem endpoints. Uma maneira de resolver um problema como este é usar o comando kubectl get pods com uma consulta de rótulo.

    1. Há um pod em execução com o rótulo fortune-app:
    kubectl get pods -l "app=fortune-app"
    1. Mas e o "app=fortune-app" e o "secure=enabled"?
    kubectl get pods -l "app=fortune-app,secure=enabled"

    Observe que essa consulta de rótulo não imprime nenhum resultado. Parece que é preciso adicionar o rótulo secure=enabled a eles.

    1. Use o comando kubectl label para adicionar ao pod do secure-fortune o rótulo secure=enabled que falta. Depois, verifique se os rótulos foram atualizados.
    kubectl label pods secure-fortune 'secure=enabled' kubectl get pods secure-fortune --show-labels
    1. Agora que os pods estão rotulados corretamente, confira a lista de endpoints no serviço fortune-app:
    kubectl describe services fortune-app | grep Endpoints

    Agora você tem um!

    1. Escolha um endereço IP externo para um dos nós.
    gcloud compute instances list
    1. Tente acessar o serviço de secure-fortune usando curl:
    curl -k https://<EXTERNAL_IP>:31000

    Pimba! Deu tudo certo.

    Teste a tarefa concluída

    Clique em Verificar meu progresso abaixo para conferir seu progresso no laboratório. Se os rótulos tiverem sido adicionados aos pods corretamente, você verá uma pontuação de avaliação.

    Adicionar rótulos aos pods

    Tarefa 9. Sobre implantações

    O objetivo deste laboratório é preparar você para escalonar e gerenciar contêineres na produção. É aqui que entram as Implantações. As implantações são uma maneira declarativa de garantir que o número de pods em execução seja igual ao número desejado de pods especificado pelo usuário.

    O principal benefício das implantações é a abstração dos detalhes de nível inferior do gerenciamento de pods. As implantações usam conjuntos de réplicas ReplicaSet em segundo plano para gerenciar o início e a interrupção dos pods. Se for necessário atualizar ou escalonar os pods, a implantação cuidará disso. A implantação também trata do reinício dos pods, caso eles parem por algum motivo.

    Observe um exemplo rápido:

    Os pods estão vinculados ao ciclo de vida do nó no qual foram criados. No exemplo acima, o Node3 parou, e também um pod com ele. Em vez de criar manualmente um novo pod e encontrar um nó para ele, sua implantação criou um novo pod e o iniciou no Node2.

    Isso é bem legal!

    É hora de combinar tudo o que você aprendeu sobre pods e serviços para dividir o aplicativo fortune-app em serviços menores usando as implantações.

    Tarefa 10. Criar implantações?

    Vamos dividir o app fortune-app em três partes:

    • auth: gera tokens JWT para usuários autenticados.
    • fortune: mostra fortunes aos usuários autenticados.
    • front-end: encaminha o tráfego para os serviços auth e fortune.

    Tudo pronto para criar implantações, uma para cada serviço. Depois disso, você vai definir serviços internos para as implantações de auth e fortune e um serviço externo para a implantação de front-end. Depois de finalizado, será possível interagir com os microsserviços, assim como o monolítico. Mas agora cada parte pode ser escalonada e implantada de maneira independente.

    1. Comece examinando o arquivo de configuração de implantação de auth.
    cat deployments/auth.yaml (Output) apiVersion: apps/v1 kind: Deployment metadata: name: auth spec: selector: matchLabels: app: auth replicas: 1 template: metadata: labels: app: auth spec: containers: - name: auth image: "us-central1-docker.pkg.dev/qwiklabs-resources/gsp-021-lab-images/auth-service:1.0.0" ports: - name: http containerPort: 8080

    A implantação cria uma réplica do contêiner de auth.

    Quando você executa o comando kubectl create para criar a implantação de auth, ele cria um pod de acordo com os dados contidos no manifesto de implantação. Isso significa que é possível escalonar o número de pods alterando o número especificado no campo Réplicas.

    1. Vá em frente e crie seu objeto de implantação:
    kubectl create -f deployments/auth.yaml
    1. É hora de criar um serviço para sua implantação de auth. Use o comando kubectl create para criar o serviço auth:
    kubectl create -f services/auth.yaml
    1. Repita o procedimento para criar e expor a implantação do fortune:
    kubectl create -f deployments/fortune-service.yaml kubectl create -f services/fortune-service.yaml
    1. Repita o processo mais uma vez para criar e expor a implantação de front-end.
    kubectl create configmap nginx-frontend-conf --from-file=nginx/frontend.conf kubectl create -f deployments/frontend.yaml kubectl create -f services/frontend.yaml Observação: há mais uma etapa para criar o front-end porque você precisa armazenar alguns dados de configuração com o contêiner.
    1. Interaja com o front-end capturando o IP externo e usando o comando curl.
    kubectl get services frontend Observação: a geração do endereço IP externo talvez leve até um minuto. Execute o comando acima novamente se o status da coluna EXTERNAL-IP for pendente. curl -k https://<EXTERNAL-IP>

    E você recebe um fortune de volta.

    Teste a tarefa concluída

    Clique em Verificar meu progresso abaixo para conferir seu progresso no laboratório. Se as implantações de auth, fortune e front-end tiverem sido criadas corretamente, você terá uma pontuação de avaliação.

    Crie implantações

    Parabéns!

    Parabéns! Você desenvolveu um aplicativo de diversos serviços usando o Kubernetes. Use o conhecimento que você adquiriu aqui para implantar aplicativos complexos no Kubernetes utilizando uma coleção de implantações e serviços.

    Próximas etapas / Saiba mais

    • Fique por dentro das novidades do Kubernetes no X (em inglês) e no blog da comunidade.
    • Lembre-se: o Kubernetes é um projeto de código aberto (http://kubernetes.io/) hospedado no GitHub. Sua participação com feedback e contribuições é sempre bem-vinda.

    Treinamento e certificação do Google Cloud

    Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

    Manual atualizado em 11 de agosto de 2025

    Laboratório testado em 11 de agosto de 2025

    Copyright 2025 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.