Olá pessoal!
A ideia para este post surgiu quando me deparei com o problema, que todos que trabalham ou vão trabalhar com Kubernetes enfrentam: a necessidade de a cada simples mudança no código da sua aplicação, ter que compilar uma nova imagem, fazer um push para um repositório e reaplicar o objeto no Kubernetes para que a alteração seja refletida.
Nessa árdua batalha do dia a dia, conheci uma poderosa ferramenta chamada Skaffold [1]. Ela não só automatiza o processo de build e deploy de uma aplicação no cluster Kubernetes, mas consegue ir além, sendo capaz de monitorar cada nova mudança no código e realizar todo o trabalho automaticamente para você, sem que seja preciso realizar nenhuma ação adicional.
Com isso em mente, você apenas se preocupa em programar sua aplicação e toda a alteração que o código receber vai se refletir automaticamente no cluster Kubernetes em poucos segundos, como se você tivesse um pipeline configurado localmente.
O Skaffold serve tanto para uso remotamente em algum Cloud Provider, quanto localmente utilizando um Minikube ou o Kind.
Para este tutorial, escolhemos o Kind, porque ele realmente consegue simular um cluster local, executando contêineres como se fossem os nós do cluster e o control plane.
Com o Kind, podemos de fato utilizar todos os recursos que usaríamos em um cluster real, com a diferença que a memória e a cpu estarão limitados aos da sua máquina local.
Como o artigo ficou grande, trarei uma série sobre o assunto, abordando mais a fundo as incríveis funcionalidades dessa ferramenta.
Mão na massa
A primeira coisa que precisamos fazer, é instalar as ferramentas necessárias, deixando claro que, para este tutorial, não vou definir a instalação de itens básicos que considero como pré-requisitos, levando em conta que estamos partindo da premissa de que essa ferramenta será usada em conjunto com o Kubernetes, e que você deverá obrigatoriamente ter o Docker e o kubectl instalados, além de ter uma conta no dockerhub para fazer o push da sua imagem para o registry.
Vamos precisar instalar:
Instalando o Kind
Como dito anteriormente, o Kind será usado para simular um cluster Kubernetes localmente, permitindo criar um ambiente de desenvolvimento completo e fiel ao usado no cluster real.
Para instalar o Kind, devemos apenas baixar o código binário e colocar no PATH da nossa máquina, que é uma distribuição Linux, é claro =).
Fácil assim…
Importante: neste caso, foi utilizada a versão 0.8.1 que era a última versão estável na época do desenvolvimento deste tutorial. Escolha a versão correta no momento em que for realizar o download.
Teste se a ferramenta executou corretamente com o comando:
Configurando o cluster local
Agora que temos as ferramentas, precisamos criar nosso cluster local, que vai subir contêineres docker para simular nós do nosso cluster.
Para criar um cluster simples, basta passar o comando:
Você pode pensar, “Legal, ele me ajuda automatizando um processo chato, mas eu poderia executar os comandos docker build, docker tag, docker push, e por fim um kubectl apply -f nos manifests. É mais custoso, mas dá pra fazer sem muita dificuldade, qual a tão grande vantagem em usar o Skaffold?”.
Eu te digo, além de todas as vantagens inerentes já comentadas anteriormente, ele ainda tem a cereja no bolo que é monitorar as alterações que você faz no código e automaticamente compilar a nova imagem e aplicar no cluster, sem você ter que fazer nada.
Deixe aberto seu terminal e agora altere o código da aplicação, troque o texto de “hello world” para “4linux” e veja a mágica acontecer.

Agora temos apenas que nos preocupar em alterando a aplicação e assim que salvarmos o arquivo a imagem é compilada, enviada ao registry, atualizada nos arquivos manifest e aplicada ao cluster, além de já termos os logs na tela para saber se tudo está do jeito que esperamos.
E para encerrar esse post com chave de ouro, ainda vou dizer para você que isso é apenas a ponta do iceberg quando falamos dessa incrível ferramenta. Como dito no começo, pretendo trazer uma série sobre Skaffold, que vai fazer você querer desenvolver utilizando-o todo dia.
Um breve spoiler: o Skaffold consegue construir o arquivo Skaffold.yaml a partir de um simples comando, que vai ler o path em busca do Dockerfile, os manifests, e já vai estruturá-lo corretamente para fazer o build e o deploy.
O Skaffold é praticamente uma ferramenta de CI/CD local.
Até a próxima!
Mais informações:
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
CURSOSCONSULTORIA