
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 a Kubernetes cluster and deployments (Auth, Hello, and Frontend)
/ 50
Canary Deployment
/ 50
Regularmente, as práticas do Dev Ops usam várias implantações para gerenciar cenários de implantação de aplicativos, como a "Implantação contínua", as "Implantações azul-verde", as "Implantações canário", entre outras. Este laboratório ensina a escalonar e gerenciar contêineres para que você crie esses cenários comuns em que várias implantações heterogêneas são usadas.
Neste laboratório, você vai aprender a:
kubectl
yaml
de implantaçãoPara maximizar seu aprendizado neste laboratório, recomendamos que você:
Em geral, as implantações heterogêneas envolvem a conexão de dois ou mais ambientes ou regiões de infraestrutura diferentes para atender a uma necessidade técnica ou operacional específica. As implantações heterogêneas são chamadas de "híbridas", "multicloud" ou "públicas-particulares", dependendo das características específicas da implantação.
As implantações heterogêneas usadas neste laboratório abrangem regiões dentro de um único ambiente de nuvem, de vários ambientes de nuvem pública (multicloud) ou uma combinação de ambientes de nuvem locais e públicos (híbridos ou públicos-particulares).
Vários desafios comerciais e técnicos podem surgir em implantações limitadas a um único ambiente ou região:
As implantações heterogêneas ajudam a superar esses desafios, mas precisam ser projetadas com processos e procedimentos programáticos e deterministas. Os procedimentos de implantação únicos ou ad-hoc podem tornar as implantações ou os processos frágeis e intolerantes a falhas. Os processos ad-hoc podem perder dados ou tráfego. Os bons processos de implantação precisam ser repetíveis e usar abordagens comprovadas para gerenciar o provisionamento, a configuração e a manutenção.
Três cenários comuns de implantação heterogênea são:
Os próximos exercícios colocam em prática alguns casos de uso comuns de implantações heterogêneas com abordagens bem-elaboradas usando o Kubernetes e outros recursos de infraestrutura que podem ajudar os usuários a realizá-los.
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:
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:
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.
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
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.
Você também encontra a Senha no painel Detalhes do laboratório.
Clique em Seguinte.
Acesse as próximas páginas:
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
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.
Depois de se conectar, vai notar 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:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
Clique em Autorizar.
A saída será parecida com esta:
Saída:
Saída:
Exemplo de saída:
gcloud
, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.
Execute o comando abaixo para definir sua zona de trabalho do Google Cloud, substituindo a zona local por
Para começar, confira o objeto de implantação.
explain
no kubectl
inclui informações sobre o objeto de implantação:--recursive
.deployments/auth.yaml
:image
na seção de contêineres da implantação para o seguinte:auth.yaml
: pressione <Esc>
e depois digite:<Enter>
. Agora, crie uma implantação simples. Examine o arquivo de configuração de implantação:Saída:
Observe como a implantação está criando uma réplica e usando a versão 1.0.0 do contêiner "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 replicas
.
kubectl create
:ReplicaSet
para ela. É possível confirmar que um ReplicaSet
foi criado para a implantação com esse comando:O ReplicaSet
deve ter um nome semelhante a auth-xxxxxxx
ReplicaSet
é gerado:Agora vamos criar um serviço para a implantação de "auth". Você já conferiu os arquivos de manifesto de serviço, então não vamos entrar em detalhes sobre isso aqui.
kubectl create
para criar o serviço auth:hello
:frontend
:ConfigMap
para "front-end".Você vai receber a resposta "hello".
kubectl
para usar "curl" como uma opção:Clique em Verificar meu progresso abaixo para conferir seu andamento no laboratório. Se o cluster e as implantações "auth", "hello" e "frontend" do Kubernetes tiverem sido criados corretamente, a pontuação de avaliação vai ser mostrada.
Agora que a implantação foi criada, ela pode ser escalonada. Faça isso atualizando o campo spec.replicas
.
kubectl explain
novamente:kubectl scale
:Depois que a implantação for atualizada, o Kubernetes vai atualizar automaticamente o ReplicaSet
associado e iniciar novos pods até atingir um total de cinco.
hello
em execução:Agora você conhece as implantações do Kubernetes e sabe como gerenciar e escalonar um grupo de pods.
As implantações permitem atualizar as imagens para uma nova versão usando um mecanismo de atualização gradual. Quando uma implantação é atualizada para uma nova versão, ela cria um novo ReplicaSet
e aumenta lentamente o número de réplicas no novo ReplicaSet
à medida que diminui as réplicas no ReplicaSet
antigo.
image
na seção de contêineres da implantação para o seguinte:Depois disso, a implantação atualizada será salva no seu cluster, e o Kubernetes vai iniciar uma atualização gradual.
ReplicaSet
criado pelo Kubernetes:Se você detectar problemas em um lançamento em execução, pause-o para interromper a atualização.
O lançamento está pausado, o que significa que alguns pods estão na nova versão, e outros, na mais antiga.
resume
:status
para mostrar o seguinte:Saída:
Suponha que um bug tenha sido detectado na sua nova versão. Como ela provavelmente apresentará problemas, todos os usuários conectados aos novos pods terão esses problemas.
Reverta para a versão anterior, investigue o problema e depois publique a versão corrigida.
rollout
:Ótimo. Você aprendeu sobre atualizações graduais para implantações do Kubernetes e como atualizar aplicativos sem tempo de inatividade.
Quando você quiser testar uma nova implantação em produção com um subgrupo de usuários, use uma implantação canário. As implantações canário permitem que você publique uma alteração para um pequeno subgrupo de usuários, reduzindo o risco associado a novas versões.
Uma implantação canário é uma implantação separada que contém sua nova versão e um serviço destinado tanto à implantação normal e estável quanto à implantação canário.
Saída:
hello
e hello-canary
. Use o comando kubectl
para verificá-las.No serviço hello
, o seletor app:hello
faz a correspondência dos pods nas duas implantações, a de produção e a canário. No entanto, como a implantação canário tem menos pods, ela ficará visível para menos usuários.
hello
que está sendo atendida pela solicitação:Clique em Verificar meu progresso abaixo para conferir seu andamento no laboratório. Se a implantação canário tiver sido criada corretamente, a pontuação de avaliação será mostrada.
Neste laboratório, cada solicitação enviada ao serviço Nginx teve a chance de ser atendida pela implantação canário. E se você quisesse garantir que um usuário não fosse atendido pela implantação canário? Por exemplo, se a UI de um aplicativo tiver sido alterada e você não quiser confundir o usuário. Em uma situação como essa, é preferível que o usuário permaneça em apenas uma das implantações.
Você pode fazer isso criando um serviço com afinidade da sessão. Dessa forma, o mesmo usuário será sempre atendido pela mesma versão. No exemplo abaixo, o serviço é o mesmo de antes, mas um novo campo sessionAffinity
foi adicionado e definido como ClientIP
. As solicitações de todos os clientes com um determinado endereço IP serão enviadas para a mesma versão do aplicativo hello
.
Como é difícil configurar um ambiente para testar, você não precisa fazer isso aqui, mas pode ser conveniente usar sessionAffinity
para implantações canário em produção.
As atualizações graduais são vantajosas porque permitem que você implante um aplicativo lentamente com o mínimo de sobrecarga, de impacto no desempenho e de tempo de inatividade. Em algumas situações, o ideal é apontar os balanceadores de carga para essa nova versão somente depois que ela tiver sido totalmente implantada. Nesse caso, as implantações azul-verde são o melhor caminho.
O Kubernetes faz isso criando duas implantações separadas; uma para a antiga versão "azul" e outra para a nova versão "verde". Use sua implantação de hello
para a versão "azul". As implantações serão acessadas por um serviço que atuará como roteador. Quando a nova versão "verde" estiver em execução, você vai passar a usar essa versão ao atualizar o serviço.
Use o serviço "hello", mas atualize para que ele tenha um seletor app:hello
, version: 1.0.0.
. O seletor corresponderá à implantação "azul". Ele não corresponderá à implantação "verde", porque usará uma versão diferente.
resource service/hello is missing
porque ele é corrigido automaticamente.Para oferecer suporte a um estilo de implantação azul-verde, você vai criar uma nova implantação "verde" para a nova versão. A implantação verde atualiza o rótulo da versão e o caminho da imagem.
Se necessário, é possível reverter para a versão antiga da mesma maneira.
Você conseguiu! Você aprendeu sobre implantações azul-verde e a implantar atualizações em aplicativos que precisam alternar as versões de uma só vez.
Neste laboratório, você teve a oportunidade de trabalhar mais com a ferramenta de linha de comando kubectl
e com vários estilos de configurações de implantação em arquivos YAML para iniciar, atualizar e escalonar suas implantações. Agora que você terminou o laboratório, já pode aplicar essas habilidades ao seu próprio trabalho de DevOps.
Guias e soluções de DevOps na documentação do Google Cloud.
Faça parte da comunidade do Kubernetes no site do Kubernetes!
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 2 de abril de 2024
Laboratório testado em 14 de agosto de 2023
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.
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