arrow_back

Optimize Costs for Google Kubernetes Engine: laboratório com desafio

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Optimize Costs for Google Kubernetes Engine: laboratório com desafio

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP343

Laboratórios autoguiados do Google Cloud

Introdução

Nos laboratórios com desafio, apresentamos uma situação e um conjunto de tarefas. Para concluí-las, em vez de seguir instruções passo a passo, você usará o que aprendeu nos laboratórios da Quest. Um sistema automático de pontuação (mostrado nesta página) avaliará seu desempenho.

Nos laboratórios com desafio, não ensinamos novos conceitos do Google Cloud. O objetivo dessas tarefas é aprimorar aquilo que você já aprendeu, como a alteração de valores padrão ou a leitura e pesquisa de mensagens para corrigir seus próprios erros.

Para alcançar a pontuação de 100%, você precisa concluir todas as tarefas no tempo definido.

Recomendamos este laboratório somente para estudantes que se inscreveram no curso Optimize Costs for Google Kubernetes Engine. Tudo pronto para começar o desafio?

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o 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, 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 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.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Cenário do desafio

Você é o principal administrador do Google Kubernetes Engine em uma equipe que gerencia a loja on-line da empresa OnlineBoutique.

Está tudo pronto para implantar o site da sua equipe no Google Kubernetes Engine, mas você ainda está procurando maneiras de garantir que os custos permaneçam baixos e que o desempenho continue alto.

Você vai ser responsável por implantar o app OnlineBoutique no GKE e fazer algumas mudanças de configuração recomendadas para otimizar os custos.

Confira algumas diretrizes que você precisa seguir durante a implantação:

  • Crie o cluster na zona .
  • O esquema de nomenclatura é equipe-recurso-número. Por exemplo, o nome de um cluster pode ser .
  • Para o cluster inicial, comece com o tamanho de máquina e2-standard-2 (2 vCPU, 8GB memory).
  • Configure o cluster para usar o release-channel rápido.

Tarefa 1: criar um cluster e implantar seu app

  1. Antes de implantar o aplicativo, você precisa criar um cluster com o nome .

  2. Vá aos poucos e crie um cluster zonal com apenas dois (2) nós.

  3. Antes de implantar a loja, configure alguns namespaces para separar os recursos no cluster de acordo com os dois ambientes: dev e prod.

  4. Em seguida, implante o aplicativo no namespace dev com o comando a seguir:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git && cd microservices-demo && kubectl apply -f ./release/kubernetes-manifests.yaml --namespace dev

Clique em Verificar meu progresso para conferir o objetivo. Criar o cluster e implantar um app

Tarefa 2: migre para um pool de nós otimizado

  1. Após implantar o app no namespace "dev", confira os detalhes do nó:

Tabela de detalhes do nó

Você chega à conclusão de que deve fazer alterações no pool de nós do cluster:

  • Com a grande quantidade de RAM restante das últimas implantações, você deve conseguir usar um pool de nós em máquinas com menos RAM.
  • Se você decidir aumentar a contagem de réplicas, a maioria das implantações exigirá apenas 100 mcpu por pod adicional. Se o pool de nós for configurado para usar máquinas menores, será possível utilizá-lo com um total de CPU menor. No entanto, você também precisa considerar quantas implantações vão precisar ser escalonadas e qual deve ser a intensidade disso.
  1. Crie um novo pool de nós com o nome e com o tipo de máquina custom-2-3584.

  2. Defina a quantidade de nós como 2.

  3. Assim que o novo pool de nós for configurado, restrinja e diminua o default-pool para migrar as implantações do seu aplicativo para o novo pool de nós.

  4. Exclua o default-pool assim que a migração das implantações for concluída com segurança.

Clique em Verificar meu progresso para conferir o objetivo. migre para um pool de nós otimizado

Tarefa 3: aplique uma atualização de front-end

Você acabou de fazer todas as implantações, e a equipe de desenvolvimento pediu para você enviar uma atualização de última hora antes do próximo lançamento. Não tem problema. Você sabe que isso pode ser feito sem causar inatividade.

  1. Defina um orçamento de interrupção de pods para a implantação do front-end.

  2. Dê ao orçamento o nome onlineboutique-frontend-pdb.

  3. Defina a min-availability da implantação como 1.

Agora é possível aplicar a atualização da sua equipe. Seus colegas mudaram o arquivo usado no banner da página inicial e forneceram uma imagem Docker atualizada:

gcr.io/qwiklabs-resources/onlineboutique-frontend:v2.1
  1. Edite sua implantação do front-end e mude a imagem dela para a versão atualizada.

  2. Ao editar sua implantação, mude a ImagePullPolicy para Always.

Clique em Verificar meu progresso para conferir o objetivo. Aplicar uma atualização de front-end

Tarefa 4: faça o escalonamento automático do tráfego estimado

O lançamento de uma campanha de marketing vai causar um aumento no tráfego da loja da OnlineBoutique. Normalmente, você prepararia recursos extras com antecedência para lidar com o pico de tráfego estimado. No entanto, se o pico de tráfego for maior do que o esperado, você poderá perder horas de sono tendo que preparar mais recursos para lidar com a demanda.

Parte do seu objetivo também é evitar o uso de recursos extras por mais do que o necessário. Para diminuir os custos e evitar problemas, configure as implantações do Kubernetes para que escalonem automaticamente assim que a carga começar a subir.

  1. Aplique o escalonamento automático horizontal de pods na sua implantação do front-end para lidar com o aumento do tráfego.

  2. Escalone com base em uma meta de CPU de 50%.

  3. Defina o escalonamento de pods entre o mínimo de 1 e o máximo de .

É importante garantir que os usuários não enfrentem inatividade durante o escalonamento da implantação.

  1. Para evitar esse problema, configure o escalonamento da implantação com uma meta de CPU de 50%. Isso deve garantir espaço de sobra para lidar com a carga durante o escalonamento automático.

  2. Configure o escalonamento da implantação com o mínimo de 1 e o máximo de pods.

E se o pico for maior do que os recursos de computação provisionados? Será necessário adicionar mais nós de computação.

  1. Em seguida, verifique se o cluster é capaz de preparar mais nós de computação automaticamente caso seja necessário. No entanto, o escalonamento automático pode lidar com casos além do escalonamento vertical.

  2. Pensando no futuro, você configura uma quantidade mínima e máxima de nós. Assim, o cluster pode adicionar nós quando o tráfego estiver alto e reduzir a quantidade de nós na situação contrária.

  3. Atualize seu escalonador automático de clusters para escalonar com o mínimo de 1 e o máximo de 6 nós.

Clique em Verificar meu progresso para conferir o objetivo. faça o escalonamento automático do tráfego estimado

  1. Por fim, execute um teste de carga para simular o aumento do tráfego.

Felizmente, a OnlineBoutique foi projetada com uma geração de carga integrada. No momento, a instância de desenvolvimento está simulando tráfego na loja com cerca de 10 usuários simultâneos.

  1. Para replicar melhor o tráfego esperado para este evento, execute o comando de geração de carga no pod loadgenerator com um número maior de usuários simultâneos. Substitua YOUR_FRONTEND_EXTERNAL_IP com o IP do serviço externo do front-end:
kubectl exec $(kubectl get pod --namespace=dev | grep 'loadgenerator' | cut -f1 -d ' ') -it --namespace=dev -- bash -c 'export USERS=8000; locust --host="http://YOUR_FRONTEND_EXTERNAL_IP" --headless -u "8000" 2>&1'
  1. Observe suas cargas de trabalho e monitore como o cluster lida com o pico de tráfego.

É possível que você veja falhas no recommendationservice ou, pelo menos, tendo dificuldades com o aumento da demanda.

  1. Aplique o escalonamento automático e horizontal de pods à implantação recommendationservice. Escalone com base em uma meta de CPU de 50% e defina o escalonamento entre o mínimo de 1 e o máximo de 5 pods.
Observação: você precisa de alguns minutos para escalonar o teste de carga e provisionar novos nós.

Tarefa 5 (opcional): otimize outros serviços

Mesmo que a aplicação do escalonamento automático horizontal de pods no serviço de front-end mantenha seu aplicativo disponível durante o teste de carga, se você monitorar suas outras cargas de trabalho, vai perceber que algumas estão usando muito certos recursos.

Se você ainda tiver tempo disponível no laboratório, inspecione outras cargas de trabalho e tente otimizá-las com o escalonamento automático para a métrica adequada de recursos.

Também verifique a possibilidade de otimizar ainda mais o uso dos seus recursos com o Provisionamento automático de nós.

Parabéns!

Parabéns! Neste laboratório, você implantou o app OnlineBoutique no Google Kubernetes Engine e fez algumas mudanças de configuração recomendadas para otimizar os custos. Você também aplicou o escalonamento automático horizontal de pods às implantações de front-end e de recommendationservice para lidar com o aumento do tráfego. Você ainda otimizou outros serviços aplicando escalonamento automático à métrica adequada de recursos.

Optimize_Costs_for_Google_Kubernetes_Engine_Skill_badge_WBG.png

Conquiste seu próximo selo de habilidade

Este laboratório autoguiado faz parte do curso com selo de habilidade Optimize Costs for Google Kubernetes Engine. Ao concluir o curso, você ganha o selo acima como reconhecimento pela sua conquista. Compartilhe o selo no seu currículo e nas redes sociais e use #GoogleCloudBadge para anunciar sua conquista.

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 22 de março de 2024

Laboratório testado em 27 de julho de 2023

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 produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.