diff --git a/aula-12/README.md b/aula-12/README.md index 5ec6eca..1760a3b 100644 --- a/aula-12/README.md +++ b/aula-12/README.md @@ -351,6 +351,59 @@ argocd app sync monitoring --prune Expansão automática de volumes quando atingirem 80% da capacidade. +### Arquitetura + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ FLUXO DE MÉTRICAS │ +├─────────────────────────────────────────────────────────────────────┤ +│ │ +│ kubelet ──────────► vmagent ──────────► vmsingle │ +│ (expõe stats (scrape (armazena │ +│ do volume) 30s) métricas) │ +│ │ +│ Métrica: kubelet_volume_stats_used_bytes │ +│ Métrica: kubelet_volume_stats_capacity_bytes │ +│ │ +└─────────────────────────────────────────────────────────────────────┘ + +┌─────────────────────────────────────────────────────────────────────┐ +│ FLUXO DE RESIZE │ +├─────────────────────────────────────────────────────────────────────┤ +│ │ +│ pvc-autoresizer ───── query ────► vmsingle │ +│ │ (consulta % usado) │ +│ │ │ +│ │ Se usado > 80% (free < 20%): │ +│ │ │ +│ ▼ │ +│ kubectl patch PVC ──────► Kubernetes ──────► Hetzner CSI │ +│ (spec.resources. (detecta mudança (expande volume │ +│ requests.storage no request) online, sem │ +│ += 10Gi) downtime) │ +│ │ │ +│ ▼ │ +│ Pod restart ──────► Filesystem resize ──────► Capacidade OK │ +│ │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +### Componentes e Responsabilidades + +| Componente | Função | Faz resize? | +|------------|--------|-------------| +| **kubelet** | Expõe métricas de volume | ❌ | +| **vmagent** | Coleta métricas (scrape) | ❌ | +| **vmsingle** | Armazena métricas | ❌ | +| **pvc-autoresizer** | Monitora + patch PVC | ✅ | +| **Hetzner CSI** | Expande volume físico | ✅ | + +### Pré-requisitos + +- StorageClass com `allowVolumeExpansion: true` (já configurado) +- Hetzner CSI Driver (suporta online resize) +- Victoria Metrics coletando métricas do kubelet + ### Instalar pvc-autoresizer ```bash