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.
- 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).
- Preparação inicial – sudo, curl, lm-sensors, recursos do sistema.
- Configuração de rede Wi-Fi – IP estático, power save, offloads, conntrack.
- Instalação do K3s – script de instalação e edição do systemd.
- Ajustes finos – DNS e NetworkManager – resolver o problema de DNS interno.
- Watchdog do Wi-Fi – script + systemd timer para conexão resiliente.
- Primeira aplicação – Deployment, Service e Ingress básicos.
- Anti‑cache no navegador – evitando cache com cabeçalhos HTTP.
- Monitoramento – comandos
kubectlessenciais. - Manutenção do cluster – escala, restart, limpeza.
- GitOps com Argo CD – instalação do Argo CD, App of Apps e exposição da UI com TLS.
- Estado atual e diagnóstico – fluxo de requisição e troubleshooting.
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.ioApó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é 60sNota: Substitua
192.168.1.200pelo IP do seu notebook.
- Verifique a conectividade Wi-Fi:
ping 192.168.1.1
- Veja os logs do watchdog:
journalctl -t wifi-watchdog -f
- Analise os logs do K3s:
journalctl -u k3s -f
- Liste o estado dos pods:
kubectl get pods -A
scripts/preflight.sh– verifica se o sistema atende aos requisitos antes de iniciar o laboratório (execute comosudo).scripts/check-homelab.sh– diagnóstico rápido do cluster após a instalação.
Sinta‑se à vontade para abrir issues e pull requests com melhorias, correções ou novas ideias.
MIT – use e adapte livremente, mas mantenha os créditos. Veja o arquivo LICENSE.
Agradeço ao excelente trabalho da equipe do K3s (Rancher) e à comunidade Debian.