Não use Kubernetes 2 - Alternativas

Olá a todos!

A postagem anterior gerou algumas discussões interessantes no LinkedIn, tanto que achei pertinente continuar esse assunto em mais um artigo: se não é recomendado usar K8s para tudo, o que devemos usar em seu lugar?

Lembrando que não estou falando aqui de cenários ou casos de uso onde o K8s não se enquadra como a melhor solução (isso já foi pincelado na postagem anterior). Esse artigo versa exclusivamente sobre sistemas, ferramentas e soluções que podem ser empregados no lugar do K8s, nas suas mais diversas conjunturas.

A seleção dos candidatos

Concentrei-me em orquestradores que podem ser usados como alternativa ao K8s, obedecendo a alguns critérios objetivos. São eles:

  1. O projeto que desenvolve a ferramenta deve possuir “massa crítica” (algumas das métricas consideradas ao contemplar as sugestões foram contribuições constantes no GitHub, documentação farta e atualizada, um bom número de empresas utilizando a solução, etc.).

  2. O sistema deve ser mais fácil e leve de se usar do que o Kubernetes. Baseei esse critério em artigos que encontrei, na opinião de alguns profissionais e amigos e também nas próprias reivindicações dos desenvolvedores das soluções aqui listadas.

  3. A ferramenta tem que ser FOSS (Free and Open Source Software, o bom e velho Software Livre e de Código Aberto). Alguns projetos são mais livres e abertos do que outros, portanto vou deixar a indicação da licença de uso que rege cada um desses meus pitacos.

E os concorrentes são…

Uma das alternativas mais consolidadas, oferece orquestração de containers nativa do Docker. É significativamente mais simples de configurar que o Kubernetes, com uma API mais intuitiva. Embora tenha perdido momentum nos últimos anos, ainda é amplamente usado em cenários onde a simplicidade é priorizada.

Ele oferece funcionalidades como balanceamento de carga, descoberta de serviços e escalabilidade automática, tudo de forma nativa e integrada ao ecossistema Docker.

 

Um agendador e orquestrador simples e flexível para implantar e gerenciar contêineres e aplicativos não conteinerizados localmente e na nuvem.

Como dito, suporta containers, VMs e aplicações standalone. Destaca-se pela simplicidade operacional - um único binário que funciona como servidor e cliente, e você ainda usa HCL para definir os workloads a serem executados. Tem adoção empresarial sólida, especialmente em conjunto com outras ferramentas da HashiCorp como Consul e Vault.

 

O K3s é uma distribuição leve do Kubernetes, certificada pela Cloud Native Computing Foundation (CNCF) e criada pela Rancher Labs (parte da SUSE).

O K3s possui alta disponibilidade e é pronto para produção. Possui um tamanho binário muito pequeno e requisitos de recursos muito baixos.

Em termos simples, o K3s é o Kubernetes sem os recursos desnecessários e com um backing datastore diferente. Dito isso, é importante observar que o K3s não é um fork, pois não altera nenhuma das funcionalidades principais do Kubernetes e permanece próximo ao Kubernetes original.

 

O Podman é uma ferramenta de gerenciamento de contêineres, pods e imagens de contêineres de código aberto. O Podman facilita a localização, a execução, a criação e o compartilhamento de contêineres.

Os Podman Quadlets permitem que os usuários gerenciem contêineres, pods, volumes, redes e imagens declarativamente por meio de arquivos de unidade systemd, simplificando o gerenciamento de contêineres em sistemas Linux sem a complexidade de ferramentas de orquestração completas como o Kubernetes.

 

Menções honrosas

  • MicroK8s (Canonical): Similar ao K3s, mas com foco na experiência Ubuntu/Canonical.

  • Kind (Kubernetes in Docker): Amplamente usado para desenvolvimento e testes, mas também adequado para cargas leves de produção.

Conclusão

Abraham Maslow (sim, aquele mesmo da pirâmide das necessidades) gostava de dizer que “para quem só sabe usar martelo, todo problema é um prego.” Conhecer algumas dessas ferramentas pode ser um diferencial importante se você é um Arquiteto de Sistemas, DevOps Engineer ou mesmo um Desenvolvedor que gosta de se meter em assuntos onde não é chamado 🤣

Diferentes necessidades podem requerer diferentes ferramentas, então não deixe de ler a documentação e fazer alguns dos tutoriais sugeridos nesse artigo. Assim, você estará mais preparado para fornecer soluções tecnológicas mais azeitadas às necessidades dos seus clientes.

Eu particularmente sugiro focar em Docker Swarm se você procura estabilidade e simplicidade, Nomad se você precisa de flexibilidade e evolução para IA e K3s se o que você anseia é um Kubernetes leve com forte suporte corporativo. Caso você use Linux, muito provavelmente o Podman já está instalado no seu sistema, portanto você pode testar os Quadlets em questão de minutos.

Espero que essas dicas tenham sido úteis! E bora continuar essa conversa no LinkedIn!

Até a próxima 🚀

Next
Next

Não use Kubernetes