fix(aula-04): forçar teste de stress via Ingress porta 80
- URL padrão agora é http://localhost (porta 80) - Verificação do Ingress executa sempre, não apenas quando porta 80 - Remove opção de fallback para porta 3000 - Atualiza README com exemplos corretos
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user