test_nlb.sh 1.61 KB
echo "=== 诊断 NLB 连接问题 ==="

# 1. 检查 NLB 状态
echo "检查 NLB 状态:"
aws elbv2 describe-load-balancers --names "k8s-ecommerc-microser-9e1de5bd30" --region us-east-1 --query 'LoadBalancers[0].{State:State.Code,DNSName:DNSName,Scheme:Scheme}' --output table

# 2. 检查 NLB 监听器
echo "检查 NLB 监听器:"
NLB_ARN=$(aws elbv2 describe-load-balancers --names "k8s-ecommerc-microser-9e1de5bd30" --region us-east-1 --query 'LoadBalancers[0].LoadBalancerArn' --output text)
aws elbv2 describe-listeners --load-balancer-arn $NLB_ARN --region us-east-1 --query 'Listeners[].[Port,Protocol,DefaultActions[0].Type]' --output table

# 3. 检查目标组健康状态
echo "详细目标组健康状态:"
TARGET_GROUPS=$(aws elbv2 describe-target-groups --load-balancer-arn $NLB_ARN --region us-east-1 --query 'TargetGroups[].TargetGroupArn' --output text)

for TG_ARN in $TARGET_GROUPS; do
    TG_NAME=$(aws elbv2 describe-target-groups --target-group-arns $TG_ARN --region us-east-1 --query 'TargetGroups[0].TargetGroupName' --output text)
    TG_PORT=$(aws elbv2 describe-target-groups --target-group-arns $TG_ARN --region us-east-1 --query 'TargetGroups[0].Port' --output text)
    echo "目标组: $TG_NAME (端口: $TG_PORT)"
    aws elbv2 describe-target-health --target-group-arn $TG_ARN --region us-east-1 --query 'TargetHealthDescriptions[]' --output table
done

# 4. 检查 Kubernetes 服务配置
echo "检查 Kubernetes 服务配置:"
kubectl get svc microservices-nlb -n ecommerce -o yaml | grep -A 15 -B 5 "spec:"

# 5. 检查 Endpoints
echo "检查 Endpoints:"
kubectl get endpoints microservices-nlb -n ecommerce -o yaml