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:
40
aula-05/vmservicescrape-kube-state-metrics.yaml
Normal file
40
aula-05/vmservicescrape-kube-state-metrics.yaml
Normal 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
|
||||
Reference in New Issue
Block a user