diff --git a/aula-04/README.md b/aula-04/README.md index 005d760..ab643d9 100644 --- a/aula-04/README.md +++ b/aula-04/README.md @@ -123,18 +123,40 @@ controller: enable-ssl-passthrough: "true" ``` +## Portas Disponíveis + +Esta aula expõe a aplicação de duas formas: + +| Porta | Acesso | Keep Request | +|-------|--------|--------------| +| **80** | Via NGINX Ingress | ✅ Sim | +| **3000** | Direto no Service (LoadBalancer) | ❌ Não | + +```bash +# Com Keep Request (via Ingress com Lua) +curl http://localhost/ + +# Sem Keep Request (acesso direto ao Service) +curl http://localhost:3000/ +``` + ## Teste de Stress +O script verifica automaticamente se o NGINX Ingress Controller está instalado antes de iniciar. + ```bash # Terminal 1: Monitorar pods kubectl get pods -w -# Terminal 2: Teste de stress +# Terminal 2: Teste de stress via Ingress (Keep Request) ./teste-stress.sh +# Com número específico de requisições +./teste-stress.sh http://localhost 50 + # Ou manualmente: for i in {1..100}; do - curl -s -o /dev/null -w "%{http_code}\n" http://localhost:3000/ + curl -s -o /dev/null -w "%{http_code}\n" http://localhost/ sleep 0.1 done ``` diff --git a/aula-04/teste-stress.sh b/aula-04/teste-stress.sh index cebed1e..7b12c02 100755 --- a/aula-04/teste-stress.sh +++ b/aula-04/teste-stress.sh @@ -3,10 +3,51 @@ # Teste de Stress para verificar resiliência do Ingress # Uso: ./teste-stress.sh [URL] [NUM_REQUESTS] -URL="${1:-http://localhost:3000}" +# Cores +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +URL="${1:-http://localhost}" TOTAL="${2:-50}" TIMEOUT=120 +# ============================================================================= +# VERIFICACAO DO NGINX INGRESS CONTROLLER +# ============================================================================= + +echo -e "${YELLOW}[INFO]${NC} Verificando NGINX Ingress Controller..." +echo "" +echo "O teste de stress da aula-04 valida o Keep Request (Lua) via Ingress." +echo "" + +# Verifica se o ingress-nginx está rodando +if ! kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx 2>/dev/null | grep -q "Running"; then + echo -e "${RED}[ERRO]${NC} NGINX Ingress Controller NAO esta rodando!" + echo "" + echo "Para resolver, execute:" + echo "" + echo " 1. Setup completo:" + echo " ./setup.sh" + echo "" + echo " 2. Ou apenas o Ingress Controller:" + echo " helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx" + echo " helm install nginx-ingress ingress-nginx/ingress-nginx \\" + echo " --namespace ingress-nginx --create-namespace \\" + echo " --set controller.allowSnippetAnnotations=true \\" + echo " --set controller.config.annotations-risk-level=Critical" + echo "" + exit 1 +fi + +echo -e "${GREEN}[OK]${NC} NGINX Ingress Controller esta rodando" +echo "" + +# ============================================================================= +# TESTE DE STRESS +# ============================================================================= + echo "============================================" echo " Teste de Stress - Alta Disponibilidade" echo "============================================" @@ -24,7 +65,7 @@ for i in $(seq 1 $TOTAL); do if echo "$RESULT" | grep -q "Req ->"; then SUCCESS=$((SUCCESS + 1)) - echo -e "[$i/$TOTAL] \033[32mOK\033[0m - $RESULT" + echo -e "[$i/$TOTAL] ${GREEN}OK${NC} - $RESULT" else FAIL=$((FAIL + 1)) # Extrai apenas o título do erro se for HTML @@ -33,7 +74,7 @@ for i in $(seq 1 $TOTAL); do else ERROR="$RESULT" fi - echo -e "[$i/$TOTAL] \033[31mFALHA\033[0m - $ERROR" + echo -e "[$i/$TOTAL] ${RED}FALHA${NC} - $ERROR" fi sleep 0.2 @@ -44,14 +85,14 @@ echo "============================================" echo " Resultado Final" echo "============================================" PERCENT=$((SUCCESS * 100 / TOTAL)) -echo -e "Sucesso: \033[32m$SUCCESS\033[0m / $TOTAL ($PERCENT%)" -echo -e "Falhas: \033[31m$FAIL\033[0m / $TOTAL" +echo -e "Sucesso: ${GREEN}$SUCCESS${NC} / $TOTAL ($PERCENT%)" +echo -e "Falhas: ${RED}$FAIL${NC} / $TOTAL" echo "============================================" if [ $FAIL -eq 0 ]; then - echo -e "\033[32m*** ZERO FALHAS! ***\033[0m" + echo -e "${GREEN}*** ZERO FALHAS! ***${NC}" elif [ $PERCENT -ge 95 ]; then - echo -e "\033[33mBom resultado (>= 95%)\033[0m" + echo -e "${YELLOW}Bom resultado (>= 95%)${NC}" else - echo -e "\033[31mResultado abaixo do esperado\033[0m" + echo -e "${RED}Resultado abaixo do esperado${NC}" fi