fix(aula-05): otimizar KEDA para detecção instantânea de crashes

- Simplificar ScaledObject: usar apenas trigger de pods unavailable
  (instantâneo) em vez de restarts (requeria janela de tempo)
- Adicionar VMServiceScrape com scrape interval de 5s para detecção
  rápida pelo Victoria Metrics (default era 30s)
- Acelerar scale down: stabilizationWindow=0, remove 10 pods/s
- Query intuitiva: 5 + (unavailable * 2) = réplicas desejadas
- Usar metricType AverageValue para cálculo correto de réplicas
- Limpar mensagem desnecessária do teste de stress
This commit is contained in:
ArgoCD Setup
2026-01-23 11:07:33 -03:00
parent 3facd5cbae
commit e15138a734
4 changed files with 98 additions and 44 deletions

View File

@@ -0,0 +1,40 @@
# =============================================================================
# VMServiceScrape - Scrape rápido do kube-state-metrics (5s)
# =============================================================================
#
# Por que 5s?
# O scrape interval padrão do Victoria Metrics é 30s.
# Para o KEDA reagir rapidamente a pods crashados, precisamos
# que as métricas sejam atualizadas com mais frequência.
#
# Fluxo de detecção:
# 1. Pod crasha
# 2. kube-state-metrics atualiza (imediato)
# 3. Victoria Metrics coleta (5s) ← Este arquivo configura isso
# 4. KEDA consulta (1s)
# 5. HPA escala (imediato)
# Total: ~6-7s de reação
#
# =============================================================================
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMServiceScrape
metadata:
name: vm-victoria-metrics-k8s-stack-kube-state-metrics
namespace: monitoring
labels:
app.kubernetes.io/instance: vm
app.kubernetes.io/name: victoria-metrics-k8s-stack
spec:
endpoints:
- honorLabels: true
port: http
interval: 5s # Scrape a cada 5 segundos (default: 30s)
metricRelabelConfigs:
- action: labeldrop
regex: (uid|container_id|image_id)
jobLabel: app.kubernetes.io/name
selector:
matchLabels:
app.kubernetes.io/instance: vm
app.kubernetes.io/name: kube-state-metrics