aula-12: Documentar arquitetura do auto-resize de PVC
Adiciona diagrama detalhado mostrando: - Fluxo de métricas (kubelet → vmagent → vmsingle) - Fluxo de resize (pvc-autoresizer → PVC → Hetzner CSI) - Tabela de componentes e responsabilidades
This commit is contained in:
@@ -351,6 +351,59 @@ argocd app sync monitoring --prune
|
|||||||
|
|
||||||
Expansão automática de volumes quando atingirem 80% da capacidade.
|
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
|
### Instalar pvc-autoresizer
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user