
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create and deploy manifest nginx deployment
/ 5
Update version of nginx in the deployment
/ 5
Deploy manifest file that deploys LoadBalancer service type
/ 5
Create a Canary Deployment
/ 5
Como profissional de engenharia da nuvem, você precisa gerenciar um aplicativo essencial que adiciona recursos com frequência. É necessário lançar novos recursos e atualizações minimizando o impacto no usuário e o tempo de inatividade do aplicativo, que é conteinerizado e implantado no Kubernetes. Às vezes, é preciso escalonar verticalmente em resposta a mudanças na demanda dos usuários. Você também quer controlar o tráfego da Internet para o aplicativo. À medida que você mantém e atualiza o app, começa a pensar no seguinte:
Como profissional de nuvem que tem familiaridade com o Serviço do Azure Kubernetes (AKS, na sigla em inglês), você provavelmente já usou arquivos de manifesto YAML para executar implantações do Kubernetes no AKS. É provável que também já tenha usado pipelines de DevOps para disponibilizar códigos e contêineres de aplicativos aos clusters do Kubernetes.
Para escalonar o número de pods em resposta à demanda, é possível alterar manualmente o arquivo de manifesto ou usar comandos kubectl. Para controlar o tráfego de entrada do aplicativo, você precisa criar e executar o plano de implantação do balanceador de carga no pipeline de DevOps. Quando você precisar atualizar a imagem do contêiner, execute o pipeline de DevOps para disponibilizar a imagem e use comandos kubectl para acionar um lançamento de implantação.
Para executar uma atualização canário, você precisa instalar o Prometheus, configurar o pipeline, adicionar o arquivo de manifesto e executar o pipeline de implantação.
Pensando nisso, agora você vai aprender a criar manifestos de implantação para o Google Kubernetes Engine (GKE) com o objetivo de criar, escalonar e atualizar implantações.
Neste laboratório, você conhecerá os princípios básicos de uso dos manifestos de implantação. Manifestos são arquivos que contêm as configurações necessárias para uma implantação que podem ser usados em vários pods diferentes. É fácil alterar manifestos.
Neste laboratório, você aprenderá a fazer o seguinte:
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.
Após concluir as etapas iniciais de login, o painel do projeto será exibido.
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.
Saída:
Exemplo de saída:
Saída:
Exemplo de saída:
Nesta tarefa, você criará um manifesto de implantação para um pod dentro do cluster.
Você criará uma implantação usando um exemplo de manifesto de implantação chamado nginx-deployment.yaml
. Essa implantação é configurada para executar três réplicas de pod com apenas um contêiner nginx em cada pod que recebe solicitações na porta TCP 80:
A saída vai ser semelhante a este exemplo.
Saída:
A saída final será semelhante ao exemplo.
Saída:
Clique em Verificar meu progresso para conferir o objetivo.
Às vezes, você quer desativar uma instância de pod. Outras vezes, você quer executar dez pods ao mesmo tempo. No Kubernetes, é possível ajustar a escala de um pod específico para o número de instâncias desejado. Para desativá-los, ajuste a escala para zero.
Nesta tarefa, você aumenta e reduz os pods no Console do Google Cloud e no Cloud Shell.
Essa ação diminui seu cluster. O status do pod deverá ser atualizado em Pods gerenciados. Talvez seja necessário clicar em Atualizar.
Saída:
Saída:
O lançamento de uma implantação é disparado se, e somente se, o modelo do pod da implantação (ou seja, .spec.template
) sofrer alteração, por exemplo, se os rótulos ou as imagens do contêiner do modelo forem atualizados. Outras atualizações, como o escalonamento da implantação, não disparam um lançamento.
Nesta tarefa, você vai disparar o lançamento e depois a reversão de uma implantação.
Isso atualiza a imagem do contêiner na implantação para nginx v1.9.1
.
A saída será semelhante ao exemplo.
Saída:
A saída será semelhante ao exemplo.
Saída:
Clique em Verificar meu progresso para conferir o objetivo.
A saída será semelhante ao exemplo. Talvez sua saída não seja exatamente igual.
Saída:
Para reverter o lançamento de um objeto, use o comando kubectl rollout undo
.
A saída será semelhante ao exemplo. Talvez sua saída não seja exatamente igual.
Saída:
A saída será semelhante ao exemplo. Talvez sua saída não seja exatamente igual, mas ela mostrará que a revisão atual foi revertida para nginx:1.7.9
.
Saída:
Nesta tarefa, você vai criar e verificar um serviço que controla o tráfego de entrada de um aplicativo. É possível configurar os serviços como os tipos ClusterIP, NodePort ou LoadBalancer. Neste laboratório, você vai configurar um LoadBalancer.
Você recebeu um arquivo de manifesto chamado service-nginx.yaml
que implanta um serviço do tipo LoadBalancer. Esse serviço está configurado para distribuir o tráfego de entrada na porta TCP 60000 para a porta 80 em qualquer contêiner que tenha o rótulo app: nginx
.
Esse manifesto define um serviço e o aplica aos pods que correspondem ao seletor. Nesse caso, o manifesto é aplicado ao contêiner nginx implantado na tarefa 1. Esse serviço também é aplicado a outros pods que tenham o rótulo app: nginx
, incluindo qualquer um criado após o serviço.
A saída será semelhante ao exemplo.
Saída:
http://[EXTERNAL_IP]:60000/
em uma nova guia do navegador para ver qual servidor está sendo usado segundo o balanceamento de carga da rede.kubectl get services nginx
até o campo ser preenchido.
Clique em Verificar meu progresso para conferir o objetivo.
Implantação canário é uma implantação separada usada para testar uma nova versão do aplicativo. Um serviço individual tem como alvo as implantações canário e normal. E é possível direcionar um subconjunto de usuários à versão canário para reduzir o risco de lançamentos.
O arquivo de manifesto nginx-canary.yaml
que você recebeu implanta apenas um pod executando uma versão mais recente do nginx do que sua implantação principal. Nesta tarefa, você vai criar uma implantação canário usando esse novo arquivo de implantação:
O manifesto do serviço nginx implantado por você na tarefa anterior usa um seletor de rótulo para direcionar os pods com o rótulo app: nginx
. As implantações normal e canário têm o rótulo app: nginx
. As conexões de entrada serão distribuídas pelo serviço para os pods de implantação normal e canário. A implantação canário tem menos réplicas (pods) do que a implantação normal e, por isso, está disponível para menos usuários do que a implantação normal.
Welcome to nginx
.Welcome to nginx
, que mostrará que o serviço está balanceando automaticamente o tráfego para a implantação canário.Clique em Verificar meu progresso para conferir o objetivo.
A configuração de serviço usada no laboratório não garante que todas as solicitações provenientes de um cliente sempre se conectarão ao mesmo pod. Cada solicitação é tratada separadamente e pode se conectar tanto à implantação nginx normal quanto à implantação nginx-canary.
Essa capacidade de alternar versões diferentes pode causar problemas se houver mudanças consideráveis de funcionalidade na versão canário. Para impedir isso, defina o campo sessionAffinity
como ClientIP
na especificação do serviço se você precisar da primeira solicitação de um cliente para determinar qual pod será usado para todas as conexões subsequentes.
Exemplo:
Neste laboratório, você descobriu como o GKE usa o arquivo de manifesto para implantar, escalonar e executar uma atualização canário no seu aplicativo. Aqui estão algumas das principais semelhanças e diferenças entre o GKE e o AKS.
Semelhanças:
O GKE e o AKS são serviços gerenciados do Kubernetes que permitem aos desenvolvedores implantar, gerenciar e escalonar aplicativos conteinerizados.
Diferenças:
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:
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.
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