
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
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Neste laboratório, você aprenderá a configurar um pipeline de entrega contínua usando o Jenkins
no Kubernetes Engine. O Jenkins é o servidor de automação usado por desenvolvedores que integram com frequência o próprio código em um repositório compartilhado. A solução que você criará neste laboratório será semelhante ao diagrama abaixo:
No Centro de arquitetura do Cloud, consulte Jenkins no Kubernetes Engine para saber mais sobre como usar o Jenkins no Kubernetes.
Neste laboratório, você completará as seguintes tarefas para saber como usar o Jenkins no Kubernetes:
Este é um laboratório de nível avançado. Antes de começar, você precisa saber pelo menos os conceitos básicos de programação de shell, do Kubernetes e do Jenkins. Confira alguns laboratórios para você se preparar:
Quando estiver tudo pronto, role para baixo e saiba mais sobre o Kubernetes, o Jenkins e a entrega contínua.
O Kubernetes Engine é a versão hospedada do Kubernetes
do Google Cloud, um gerenciador de cluster e sistema de orquestração avançado para contêineres. O Kubernetes é um projeto de código aberto que pode ser executado em diversos ambientes: desde laptops e clusters de alta disponibilidade com vários nós, até máquinas virtuais e bare metal. Como mencionado acima, os apps do Kubernetes são desenvolvidos em containers
. São aplicativos leves com todas as dependências e bibliotecas necessárias para executá-los. Essa estrutura subjacente torna os aplicativos Kubernetes altamente disponíveis, seguros e rápidos de implantar, o que é ideal para desenvolvedores de nuvem.
O Jenkins é um servidor de automação de código aberto que permite orquestrar com flexibilidade pipelines de build, teste e implantação. Com o Jenkins, os desenvolvedores podem fazer iterações rápidas em projetos sem se preocupar com problemas de sobrecarga que podem ser gerados pela entrega contínua.
Quando é preciso configurar um pipeline de entrega contínua (CD), a implantação do Jenkins no Kubernetes Engine oferece benefícios importantes em comparação com uma implantação padrão baseada em VM.
Se você usar contêineres no processo de criação, um host virtual poderá executar jobs em vários sistemas operacionais. O Kubernetes Engine oferece ephemeral build executors
, que são usados somente quando os builds estão ativamente em execução, deixando recursos para outras tarefas do cluster, como jobs de processamento em lote. Outro benefício do uso de executores de build temporários é a velocidade, já que eles são iniciados em questão de segundos.
Além disso, o Kubernetes Engine vem com o balanceador de carga do Google, que pode ser usado para automatizar o roteamento de tráfego da Web para suas instâncias. O balanceador de carga processa a terminação SSL e usa um endereço IP global configurado com a rede de backbone do Google. Com a interface da Web, esse balanceador de carga sempre levará seus usuários a uma instância do aplicativo pelo caminho mais rápido possível.
Agora que você aprendeu um pouco sobre o Kubernetes, o Jenkins e como os dois interagem em um pipeline de CD, é hora de criar um.
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:
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:
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 Próxima.
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
Você também encontra a senha no painel Detalhes do Laboratório.
Clique em Próxima.
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.
Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud.
Clique nas seguintes janelas:
Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu 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.
Saída:
Saída:
gcloud
no Google Cloud no guia de visão geral da gcloud CLI.
Essa etapa pode levar vários minutos para ser concluída. Os escopos extras permitem que o Jenkins acesse o Cloud Source Repositories e o Google Container Registry.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se o cluster do Kubernetes tiver sido criado corretamente, você verá uma pontuação de avaliação.
Neste laboratório, você vai usar o Helm para instalar o Jenkins a partir do repositório Charts. O Helm é um gerenciador de pacotes que facilita a configuração e a implantação de aplicativos do Kubernetes. Depois de instalar o Jenkins, você poderá configurar seu pipeline de CI/CD.
Ao instalar o Jenkins, é possível usar um arquivo values
como modelo para fornecer os valores necessários para a configuração.
Você vai usar o arquivo values
personalizado para configurar automaticamente o Kubernetes Cloud e adicionar estes plug-ins necessários:
Dessa forma, o Jenkins se conecta ao cluster e ao projeto do GCP.
Talvez leve alguns minutos para que o comando seja concluído.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se o gráfico do Jenkins tiver sido configurado corretamente, você verá uma pontuação de avaliação.
Running
e o do contêiner como "READY":Exemplo de saída:
Você vai receber esta saída:
Exemplo de saída:
Você está usando o Plug-in do Kubernetes para que os nós do builder sejam iniciados automaticamente, conforme necessário, quando o mestre do Jenkins os solicitar. Após a conclusão do processo, eles serão automaticamente desativados, e os recursos relacionados serão adicionados outra vez ao pool de recursos do cluster.
Esse serviço expõe as portas 8080
e 50000
dos pods que correspondem a selector
. Com isso, as portas da interface da Web do Jenkins e as portas de registro do agente/builder serão expostas no cluster do Kubernetes. Além disso, o serviço jenkins-ui
é exposto usando um ClusterIP para evitar que ele seja acessado de fora do cluster.
admin
e sua senha gerada automaticamente.A configuração do Jenkins no seu cluster do Kubernetes está pronta. O Jenkins vai gerenciar seus pipelines automatizados de CI/CD nas próximas seções.
Você vai implantar o aplicativo de amostra gceme
no pipeline de implantação contínua. O aplicativo, escrito na linguagem Go, está no diretório sample-app do repositório. Quando você executa o binário gceme em uma instância do Compute Engine, o app mostra os metadados da instância em um card de informações.
O aplicativo simula um microsserviço aceitando dois modos de operação.
Você vai implantar o aplicativo em dois ambientes diferentes:
kubectl apply
para criar as implantações das versões de produção e canário, além dos serviços:Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se as implantações tiverem sido criadas corretamente, você verá uma pontuação de avaliação.
Por padrão, somente uma réplica do front-end é implantada. Use o comando kubectl scale
para garantir o mínimo de quatro réplicas em execução o tempo todo.
Exemplo de saída:
Cole o IP externo no navegador para ver o card de informações. Você verá uma página semelhante a esta:
Para confirmar que os dois serviços estão funcionando, abra o endereço IP externo do front-end no navegador.
Verifique a saída da versão do serviço (que deve ser 1.0.0) executando o seguinte comando:
Pronto. Você implantou o aplicativo de amostra. Agora, configure um pipeline para implantar as alterações de maneira contínua e confiável.
gceme
e a envie por push ao Cloud Source Repository:Ignore o aviso. Esse repositório não vai ser cobrado.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se o repositório de origem tiver sido criado corretamente, você verá uma pontuação de avaliação.
[EMAIL_ADDRESS]
pelo endereço de e-mail do Git e [USERNAME]
pelo nome de usuário do Git:Configure as credenciais para permitir que o Jenkins acesse o repositório do código. O Jenkins vai usar as credenciais da conta de serviço do seu cluster para fazer o download do código do Cloud Source Repositories.
Na interface do usuário do Jenkins, clique em Manage Jenkins à esquerda e depois em Security > Credentials.
Clique em System.
Clique em Global credentials (unrestricted) (Credenciais globais (ilimitadas)).
Clique em Add Credentials (Adicionar credenciais) no canto superior direito.
Selecione Google Service Account from metadata no menu suspenso Kind e clique em Create.
As credenciais globais foram adicionadas. O nome da credencial é o Project ID
que está na seção CONNECTION DETAILS
do laboratório.
http://cd-jenkins:8080
cd-jenkins-agent:50000
Navegue até a interface do usuário do Jenkins e siga estas etapas para configurar um job de pipeline.
Clique em Dashboard (Painel) > New Item (Novo item) no painel à esquerda.
Nomeie o projeto como sample-app, escolha a opção Multibranch Pipeline (Pipeline de multirramificaçõs) e clique em OK.
Na página seguinte, na seção Branch Sources (Origens da ramificação), selecione Git no menu suspenso Add Source (Adicionar origem).
Cole o URL do clone HTTPS do repositório sample-app no Cloud Source Repositories, no campo Project Repository (Repositório de projetos). Substitua [PROJECT_ID]
pelo ID do projeto:
No menu suspenso Credentials (Credenciais), selecione a credencial que você criou ao adicionar sua conta de serviço nas etapas anteriores.
Na seção Scan Multibranch Pipeline Triggers, marque a caixa Periodically if not otherwise run e defina o valor de Interval como 1 minute.
A configuração do job será semelhante a esta:
Depois que você concluir essas etapas, um job chamado Branch indexing
(Indexação de ramificação) será executado. Esse "meta-job" identifica as ramificações do repositório e garante que não ocorreram alterações nelas. Se você clicar em "sample-app" no canto superior esquerdo, o job master
vai aparecer.
O pipeline do Jenkins está pronto. Em seguida, você vai criar o ambiente de desenvolvimento para integração contínua.
Uma ramificação de desenvolvimento é um conjunto de ambientes que os desenvolvedores usam para testar as alterações no código antes de enviá-las para integração ao site ativo. Esses ambientes são versões reduzidas do aplicativo, mas precisam ser implantados com os mesmos mecanismos do ambiente ativo.
Para criar um ambiente de desenvolvimento em uma ramificação de recursos, você pode enviá-lo por push ao servidor Git e deixar o Jenkins implantar o ambiente.
O Jenkinsfile
que define o pipeline é escrito com a sintaxe do Groovy para pipelines do Jenkins (página em inglês). Com um Jenkinsfile
, é possível expressar todo um pipeline de build em um único arquivo que coexiste com o código-fonte. Os pipelines oferecem suporte aos recursos eficientes, como o carregamento em paralelo, e exigem a aprovação manual do usuário.
Para que o pipeline funcione como esperado, é preciso modificar o Jenkinsfile
para definir o código do seu projeto.
vi
:Adicione o PROJECT_ID
ao valor REPLACE_WITH_YOUR_PROJECT_ID
. O PROJECT_ID
é o ID do seu projeto que fica na seção CONNECTION DETAILS
(Detalhes da conexão) do laboratório. Ele também pode ser localizado usando gcloud config get-value project
.
Altere o valor da CLUSTER_ZONE
para gcloud config get compute/zone
.
Jenkinsfile
, pressione a tecla Esc (para usuários do vi
) e use:Para demonstrar como alterar o aplicativo, mude a cor dos cards do gceme de azul para laranja.
html.go:
<div class="card blue">
com o seguinte código:html.go
, pressione a tecla Esc e use:main.go
:Atualize a versão para:
Isso vai iniciar a criação do seu ambiente de desenvolvimento.
Depois de enviar a mudança por push ao repositório do Git, acesse a interface de usuário do Jenkins. Você verá que a criação da ramificação new-feature
foi iniciada. Pode levar até um minuto para que as alterações sejam detectadas.
kubectl --namespace=new-feature apply...
. Agora, a ramificação "new-feature" vai ser implantada no seu cluster.Se nada for exibido em Build Executor
(Executor de build), não se preocupe. Acesse a página inicial do Jenkins > app de amostra. Verifique se o pipeline new-feature
foi criado.
localhost
e permitindo que o proxy kubectl
a encaminhe para seu serviço:Você verá a resposta "2.0.0", que é a versão em uso no momento.
Se você receber um erro semelhante a este:
curl
novamente. Prossiga quando receber a seguinte saída:Pronto. Você configurou o ambiente de desenvolvimento. Agora, você usará o que aprendeu no módulo anterior para implantar uma versão canário e testar um novo recurso.
Você confirmou que seu app está executando o código mais recente no ambiente de desenvolvimento. Agora, implante esse código no ambiente canário.
2.0.0
.Pronto! Você implantou uma versão canário. Agora, implante a nova versão na produção.
Agora que a versão canário está pronta e não houve reclamações de clientes, implante-a no restante da sua frota de produção.
No Jenkins, você verá que o pipeline mestre foi iniciado.
1.0.0
forem retornadas, execute os comandos acima novamente. Para interromper esse comando, pressione Ctrl + C.Exemplo de saída:
Você também pode navegar para o site em que o aplicativo gceme mostra os cards de informações. A cor do card mudou de azul para laranja.
Exemplo de saída:
Responda às perguntas de múltipla escolha a seguir para reforçar sua compreensão dos conceitos abordados neste laboratório. Use todo o conhecimento adquirido até aqui.
Pronto.
Muito bem! Você implantou seu aplicativo na produção.
Isso conclui este laboratório prático sobre implantação e uso do Jenkins no Kubernetes Engine para ativar o pipeline de entrega/implantação contínua. Você teve a oportunidade de implantar uma ferramenta DevOps importante no Kubernetes Engine e configurá-la para uso na produção. Você trabalhou com a ferramenta de linha de comando kubectl e as configurações de implantação em arquivos YAML, além de aprender um pouco sobre a configuração de pipelines do Jenkins para um processo de desenvolvimento/implantação. Com essa experiência prática, você deve se sentir mais à vontade para usar essas ferramentas no seu próprio trabalho de DevOps.
Este laboratório autoguiado faz parte das Quests Kubernetes no Google Cloud, Cloud Architecture e DevOps Essentials. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em qualquer Quest que tenha este laboratório para receber os créditos de conclusão na mesma hora. Confira o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.
Continue sua Quest no Hello Node Kubernetes ou confira estes laboratórios do Google Cloud Ensina:
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, on demand 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 20 de setembro de 2023
Laboratório testado em 20 de setembro 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