Skip to content

Introdução

Fala galera! Nos últimos anos, tenho trabalhado bastante com Kubernetes. Durante muito tempo, eu só usava a plataforma de vez em quando na minha máquina, mas sempre tive aquela vontade de ter mais liberdade para testar, instalar ferramentas, quebrar tudo e depois restaurar sem medo de consequências.

Na minha máquina, além das limitações de hardware, eu não curtia muito a ideia de fazer testes e experiências que poderiam afetar meu ambiente de trabalho. Acredito que é sempre melhor ter um ambiente isolado para essas experiências e evitar de fazer m... (você sabe né? 😅).

Outra opção seria subir um cluster na DigitalOcean ou qualquer outro provedor de cloud, mas quando a conta chega... meu cartão de crédito chora!

Foi aí que tive a ideia (brilhante ou não, você decide!) de comprar duas máquinas compactas para montar meu cluster em um ambiente isolado. Inicialmente, pensei em um cluster com Raspberry Pi, mas com o câmbio da época, somado com a taxa do amor, optei por comprar dois ThinkCentre da Lenovo que estavam em promoção. Sei que seria melhor ter mais nodes, mas foi o que meu orçamento permitiu!

Hardware

Enfim, com isso, meu cluster ficou configurado com:

  • Node master: 32GB RAM, 12 CPUs, SSD M2 512GB
  • Node worker: 16GB RAM, 12 CPUs, SSD M2 240GB

Totalizando 48GB de RAM e 24 CPUs. Estou muito satisfeito com esses números! Recentemente, calculei quanto custaria manter uma infraestrutura similar em um provedor de cloud: em 4 meses, já teria pago o valor dos equipamentos que comprei, e ainda sobraria dinheiro para um sorvete! 🍦

Problemas

Bom, estava tudo dando certo até começar a dar errado! 😅

CGNAT

Se algum dia você tentou acessar sua máquina pelo IP público que a operadora de internet disponibiliza, talvez você também tenha passado por isso. Basicamente, CGNAT (Carrier Grade Network Address Translation) é uma tecnologia que permite que vários usuários compartilhem um mesmo endereço IP público. É uma alternativa que as operadoras utilizam para resolver o esgotamento de endereços IPv4.

Como resolver?

O primeiro passo para resolver isso é ter fé (qualquer tipo serve!) e, principalmente, paciência para ficar rodando entre os atendentes do provedor até achar uma pessoa que entende do que você está falando. No meu caso, depois de muita insistência e alguns dias tentando, eles me deram um IP fixo.

Após isso, foi possível acessar minha rede local através do IP público. Então, buscando isolar ainda mais meu cluster, comprei um Mikrotik para criar uma sub-rede isolada e mitigar problemas de segurança da minha rede local.

Desta forma, foi possível ter mais segurança (pelo menos na minha cabeça! 😄) e um maior controle, deixando todas as portas bloqueadas no modem e no Mikrotik, liberando apenas 443 e 80. A comunicação de rede ficou mais ou menos assim:

IP Público -> Modem Operadora -> Mikrotik -> Node Master