# Roadmap: Dominando Kubernetes (K3s) Como você já tem dois clusters K3s ativos (**Zeus** e **Posseidon**), este roadmap é focado em prática (Hands-on). O objetivo é sair do "zero" até o deploy profissional. ## 🏁 Fase 1: Preparando sua Máquina (Local) Não gerencie o cluster apenas acessando via SSH (`ssh zeus`). Instale as ferramentas no seu Windows/Computador para pilotar de "fora". ### O que instalar agora? 1. **Kubectl**: O "controle remoto" oficial. * *Windows*: `winget install -e --id Kubernetes.kubectl` 2. **K9s**: Interface terminal "visual" (Indispensável para admins). Te economiza horas de digitação. * *Windows*: `winget install -e --id Derailed.k9s` 3. **Helm**: Gerenciador de pacotes (o "apt/yum" do Kubernetes). * *Windows*: `winget install -e --id Helm.Helm` > **Desafio 1**: Baixe o arquivo `/etc/rancher/k3s/k3s.yaml` do Zeus para sua máquina (em `~/.kube/config`), troque `127.0.0.1` pelo IP do Zeus e tente rodar `k9s` localmente. --- ## 🚀 Fase 2: O Básico deworkloads (Pod & Service) Entenda os blocos fundamentais. Esqueça "serviços systemd", aqui tudo é objeto. ### Conceitos para testar: 1. **Pod**: O menor item. Crie um Nginx simples. 2. **Deployment**: O gerenciador de pods (Replicas, Updates). Delete um pod e veja ele renascer "magicamente". 3. **Service (ClusterIP)**: O IP fixo interno para seus pods conversarem. > **Desafio 2**: Crie um arquivo `nginx.yaml` com Deployment + Service e aplique no cluster (`kubectl apply -f nginx.yaml`). --- ## 🌐 Fase 3: Expondo para o Mundo (Ingress & Traefik) Seus clusters K3s já vêm com **Traefik**. Você não precisa instalar outro Ingress Controller. ### O que estudar: 1. **Ingress Route**: Como mapear `meu-site.com` -> `Service do Nginx`. 2. **Certificados**: Como o Traefik lida com HTTPS (no K3s é um pouco diferente via CRDs ou Ingress padrão). > **Desafio 3**: Faça seu Nginx do desafio anterior responder em `http://teste.rede5.com.br` (apontando o DNS para o IP do Zeus). --- ## 📦 Fase 4: Persistência (Storage) Containers são efêmeros (morrem e perdem dados). Bancos de dados precisam de disco. ### Conceitos: 1. **PVC (Persistent Volume Claim)**: O "pedido" de disco. 2. **Storage Class**: O K3s usa o `local-path` (salva em `/var/lib/rancher/k3s/storage` no node). > **Desafio 4**: Suba um PostgreSQL que, mesmo se você deletar o pod, os dados continuem lá quando ele voltar. --- ## 🛠️ Fase 5: Packagign com Helm Parar de escrever YAML na mão para tudo. ### O que fazer: 1. Adicionar repositórios (Bitnami, etc). 2. Instalar softwares complexos com 1 comando: `helm install meu-redis bitnami/redis`. --- ## 🤖 Fase 6: GitOps (Nível Avançado/Final) Aqui é onde brilha. Em vez de rodar `kubectl apply`, você commita no Git e o cluster se atualiza sozinho. ### Ferramenta recomendada: **ArgoCD**. É o padrão da indústria. Ele fica monitorando seu GitHub e sincroniza o cluster. > **Meta Final**: Ter um repositório git com toda a infra do Zeus/Posseidon definida lá. --- ## Resumo do Kit de Iniciante | Ferramenta | Para que serve? | Instalar onde? | |------------|-----------------|----------------| | **kubectl** | Comandos básicos | Seu PC | | **k3s** | O Cluster em si | Servidor (Já tem!) | | **k9s** | Dashboard Turbo | Seu PC | | **Traefik** | Porta de entrada (Reverse Proxy) | Servidor (Já vem no K3s) | | **ArgoCD** | Automação de Deploy | Servidor (Futuro) |