- 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
41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
# =============================================================================
|
|
# 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
|