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

@@ -34,6 +34,9 @@ log_success() { echo -e "${GREEN}[OK]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERRO]${NC} $1"; }
# Diretório do script
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# =============================================================================
# VERIFICAÇÕES INICIAIS
# =============================================================================
@@ -96,6 +99,11 @@ kubectl wait --for=condition=ready pod \
--timeout=120s 2>/dev/null || true
log_success "Victoria Metrics está rodando"
# Configurar scrape rápido (5s) para detecção rápida de crashes
log_info "Configurando scrape interval de 5s para kube-state-metrics..."
kubectl apply -f "$SCRIPT_DIR/vmservicescrape-kube-state-metrics.yaml"
log_success "Scrape interval configurado para 5s"
echo ""
# =============================================================================
@@ -147,6 +155,8 @@ else
helm install nginx-ingress ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set controller.allowSnippetAnnotations=true \
--set controller.config.annotations-risk-level=Critical \
--wait
log_success "NGINX Ingress instalado"
@@ -159,9 +169,6 @@ echo ""
log_info "=== Aplicando manifestos da aplicação ==="
# Diretório do script
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
log_info "Aplicando ConfigMap..."
kubectl apply -f "$SCRIPT_DIR/configmap.yaml"