110 lines
3.0 KiB
Bash
110 lines
3.0 KiB
Bash
#!/bin/bash
|
|
# K8s 蜂群系统 - 快速状态检查
|
|
|
|
echo "======================================"
|
|
echo " K8s 蜂群系统 - 状态检查"
|
|
echo "======================================"
|
|
echo ""
|
|
|
|
# 颜色定义
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 检查 kubectl
|
|
if ! command -v kubectl &> /dev/null; then
|
|
echo -e "${RED}❌ kubectl 未安装${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查集群连接
|
|
echo "1. 检查集群连接..."
|
|
if kubectl cluster-info &> /dev/null; then
|
|
echo -e "${GREEN}✅ 集群连接正常${NC}"
|
|
else
|
|
echo -e "${RED}❌ 无法连接到集群${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查命名空间
|
|
echo ""
|
|
echo "2. 检查命名空间..."
|
|
if kubectl get namespace swarm-system &> /dev/null; then
|
|
echo -e "${GREEN}✅ swarm-system 命名空间存在${NC}"
|
|
else
|
|
echo -e "${RED}❌ swarm-system 命名空间不存在${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 Redis
|
|
echo ""
|
|
echo "3. 检查 Redis..."
|
|
REDIS_STATUS=$(kubectl get pod redis-0 -n swarm-system -o jsonpath='{.status.phase}' 2>/dev/null)
|
|
if [ "$REDIS_STATUS" = "Running" ]; then
|
|
echo -e "${GREEN}✅ Redis 运行中${NC}"
|
|
else
|
|
echo -e "${RED}❌ Redis 状态: $REDIS_STATUS${NC}"
|
|
fi
|
|
|
|
# 检查 Orchestrator
|
|
echo ""
|
|
echo "4. 检查 Orchestrator..."
|
|
ORCH_READY=$(kubectl get deployment orchestrator -n swarm-system -o jsonpath='{.status.readyReplicas}' 2>/dev/null)
|
|
if [ "$ORCH_READY" = "1" ]; then
|
|
echo -e "${GREEN}✅ Orchestrator 运行中${NC}"
|
|
else
|
|
echo -e "${RED}❌ Orchestrator 未就绪${NC}"
|
|
fi
|
|
|
|
# 获取 Orchestrator 外部 IP
|
|
echo ""
|
|
echo "5. 获取访问地址..."
|
|
EXTERNAL_IP=$(kubectl get svc orchestrator-service -n swarm-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}' 2>/dev/null)
|
|
if [ -n "$EXTERNAL_IP" ]; then
|
|
echo -e "${GREEN}✅ Orchestrator 地址: http://$EXTERNAL_IP:8000${NC}"
|
|
|
|
# 测试健康检查
|
|
echo ""
|
|
echo "6. 测试 API 健康检查..."
|
|
if curl -s -f "http://$EXTERNAL_IP:8000/health" > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✅ API 健康检查通过${NC}"
|
|
|
|
# 显示健康状态详情
|
|
HEALTH=$(curl -s "http://$EXTERNAL_IP:8000/health")
|
|
echo " 详情: $HEALTH"
|
|
else
|
|
echo -e "${YELLOW}⚠️ API 健康检查失败(可能还在启动中)${NC}"
|
|
fi
|
|
else
|
|
echo -e "${YELLOW}⚠️ 等待 LoadBalancer 分配外部 IP...${NC}"
|
|
fi
|
|
|
|
# 显示所有 Pod
|
|
echo ""
|
|
echo "7. 所有 Pod 状态:"
|
|
echo "-----------------------------------"
|
|
kubectl get pods -n swarm-system
|
|
|
|
# 显示服务
|
|
echo ""
|
|
echo "8. 服务状态:"
|
|
echo "-----------------------------------"
|
|
kubectl get svc -n swarm-system
|
|
|
|
# 总结
|
|
echo ""
|
|
echo "======================================"
|
|
echo " 状态检查完成"
|
|
echo "======================================"
|
|
echo ""
|
|
echo "快速命令:"
|
|
echo " 查看日志: kubectl logs -n swarm-system deployment/orchestrator -f"
|
|
echo " 查看 Pod: kubectl get pods -n swarm-system"
|
|
echo " 运行测试: python3 test_system.py"
|
|
echo ""
|
|
echo "文档:"
|
|
echo " 快速入门: 快速入门指南.md"
|
|
echo " 完整文档: 部署和使用文档.md"
|
|
echo ""
|