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:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user