Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 HomeLab – Transforme um notebook antigo em um cluster Kubernetes com K3s

GitHub last commit GitHub repo size License: MIT K3s version

Este repositório documenta passo a passo a construção de um laboratório caseiro usando um notebook antigo (Debian 13, 4 vCPUs, ~8GB RAM, Wi-Fi). O objetivo é rodar um cluster Kubernetes de produção local (K3s) com uma aplicação web de exemplo, incluindo:

  • Instalação e configuração do K3s com parâmetros personalizados.
  • Correção de problemas comuns de rede Wi-Fi (driver instável, DNS interno, power saving).
  • Watchdog automático para reciclar a conexão Wi-Fi quando ela trava.
  • Deployment de uma aplicação Nginx com anti‑cache no navegador e cabeçalhos de debug.
  • GitOps com Argo CD — migração de deploys manuais para GitOps com App of Apps, auto-sync, self-heal e UI exposta com TLS via Traefik.

🎯 Público-alvo: entusiastas de infraestrutura, estudantes de Kubernetes e qualquer pessoa com um notebook sobrando que queira aprender na prática.


📋 Pré‑requisitos

  • Notebook com Debian 13 (ou superior) instalado.
  • Acesso à internet via Wi-Fi (ou Ethernet, mas ajuste os comandos).
  • Pelo menos 4 vCPUs e 8 GB de RAM (recomendado).
  • Conexão com o roteador local (IP estático configurável).
🖼️ Hardware do notebook (clique para expandir) Notebook com Debian

🗂️ Índice da documentação

  1. Preparação inicial – sudo, curl, lm-sensors, recursos do sistema.
  2. Configuração de rede Wi-Fi – IP estático, power save, offloads, conntrack.
  3. Instalação do K3s – script de instalação e edição do systemd.
  4. Ajustes finos – DNS e NetworkManager – resolver o problema de DNS interno.
  5. Watchdog do Wi-Fi – script + systemd timer para conexão resiliente.
  6. Primeira aplicação – Deployment, Service e Ingress básicos.
  7. Anti‑cache no navegador – evitando cache com cabeçalhos HTTP.
  8. Monitoramento – comandos kubectl essenciais.
  9. Manutenção do cluster – escala, restart, limpeza.
  10. GitOps com Argo CD – instalação do Argo CD, App of Apps e exposição da UI com TLS.
  11. Estado atual e diagnóstico – fluxo de requisição e troubleshooting.

🧠 Mapa mental do que você vai aprender

Mapa mental do aprendizado


🚀 Começo rápido (se você já tiver o cluster rodando)

Pré-Argo CD (deploy manual)

git clone https://github.com/seu-usuario/homelab.git && cd homelab
kubectl apply -f manifests/app.yaml
# Acesse: http://nginx.192.168.1.200.nip.io

Pós-Argo CD (GitOps)

Após instalar o Argo CD (Capítulo 10), toda alteração é feita via Git:

git add manifests/app.yaml
git commit -m "minha alteração"
git push origin main
# Argo CD sincroniza automaticamente em até 60s

Nota: Substitua 192.168.1.200 pelo IP do seu notebook.


⚙️ Solução de problemas em 4 passos

  1. Verifique a conectividade Wi-Fi:
    ping 192.168.1.1
  2. Veja os logs do watchdog:
    journalctl -t wifi-watchdog -f
  3. Analise os logs do K3s:
    journalctl -u k3s -f
  4. Liste o estado dos pods:
    kubectl get pods -A

🔧 Scripts de utilidade

  • scripts/preflight.sh – verifica se o sistema atende aos requisitos antes de iniciar o laboratório (execute como sudo).
  • scripts/check-homelab.sh – diagnóstico rápido do cluster após a instalação.

🤝 Contribuição

Sinta‑se à vontade para abrir issues e pull requests com melhorias, correções ou novas ideias.

📜 Licença

MIT – use e adapte livremente, mas mantenha os créditos. Veja o arquivo LICENSE.

🙏 Agradecimentos

Agradeço ao excelente trabalho da equipe do K3s (Rancher) e à comunidade Debian.

About

Transformando um notebook antigo em um cluster Kubernetes com K3s

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages