kind: criando clusters Kubernetes para testes locais sem complicações

Renato Groffe
3 min readOct 3, 2022

--

O projeto kind é uma alternativa gratuita e excelente para desenvolvimento e testes com Kubernetes, cujo uso inclusive já abordei em diversas lives ao longo deste ano (2022) no Canal .NET. Com um cluster baseado nesta tecnologia sendo disponibilizado a partir de um simples container, temos a possibilidade de simular sem grandes complicações um ambiente Kubernetes em Windows, Linux e macOS.

Tomando como exemplo a instrução:

kind create cluster --name kind-01

Teremos como o resultado:

  • A criação de um cluster chamado kind-01;
  • A instrução docker container ls exibirá o container correspondente em execução;
  • E com o comando kubectl get all -n kube-system podemos também visualizar diversos pods de sistema (namespace kube-system) gerados por este procedimento.
Clique nesta imagem para visualizar com uma melhor resolução

Ferramentas auxiliares para gerenciamento do Kubernetes apresentam total compatibilidade com o kind, como no caso do utilitário de linha de comando k9s e sua interface gráfica:

Clique nesta imagem para visualizar com uma melhor resolução

É possível ainda habilitar o acesso externo a Pods (fora do cluster Kubernetes propriamente), a partir de configurações durante a criação de um cluster local com kind. É o que demonstrei numa live recente no Canal .NET, enfatizando inclusive a utilidade que esta capacidade propicia em testes de integração que necessitem simular o comportamento de uma aplicação no Kubernetes:

Durante esta live os exemplos que apresentei foram disponibilizados nos seguintes repositórios:

.NET 6 + ASP.NET Core + MongoDB + FluentValidation + Dockerfile + Testes em JavaScript com Postman (para execução via Newman) + Kubernetes + kind (configurações para execução da aplicação em um cluster local)

Azure DevOps + REST API Tests (Postman + Newman) + ASP.NET Core + MongoDB + kind (configurações para execução da aplicação em um cluster Kubernetes local) + Azure Kubernetes Service + HTML Report + JUnit XML + Chamados Suporte

Caso achem úteis estas e outras soluções que incluí aqui, peço por favor um ⭐️ nos repositórios apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

Múltiplos clusters também podem ser criados em um mesmo ambiente com o Docker previamente configurado, como indicado em exemplos no vídeo a seguir (outra live produzida para o Canal .NET):

Um repositório com estes exemplos pode ser encontrado também no meu GitHub:

kind + Testes locais com Kubernetes

Por fim, deixo aqui o link da apresentação que realizei no Azure Weekend 2022 envolvendo o uso de KEDA (Kubernetes Event-driven Autoscaling) com kind localmente. Serviços como KEDA podem ser perfeitamente configurados em um cluster local, com o exemplo que apresentei valendo-se da implantação do Chart Helm para esta tecnologia e escalando uma aplicação que consome mensagens de uma fila do Azure Service Bus:

O repositório com este exemplo de escalabilidade utilizando KEDA está no GitHub:

kind + Kubernetes + KEDA (ScaledObjects) + Helm + Worker Service em .NET 6 (contagem de acessos) + Azure Service Bus (Queue) + Application Insights + SQL Server

E concluo este artigo com um convite…

Nesta terça 04/10 às 21:00 horário de Brasília — teremos mais um evento online e gratuito no canal Canal .NET.

Uma nova live abordando mais dicas, truques e novidades no Microsoft Azure visando simplificar a implementação de aplicações .NET/C# e ASP.NET Core na nuvem!

Alguns temas previstos:
- Azure API Management: boas práticas ao expor seu Back-End na nuvem;
- Serverless, containers e muito mais!

Faça sua inscrição em:
https://bit.ly/live-dotnet-azure-dicas-3ed

Referências

kind | Quick Start

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet