infracloud/k3s/roadmap_learning.md
2026-01-10 10:21:12 -06:00

87 lines
3.4 KiB
Markdown

# 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) |