Lucida项目基于Kubernetes的部署指南
2025-07-08 05:11:42作者:魏献源Searcher
Lucida是一个开源的人工智能问答系统,本文将详细介绍如何使用Kubernetes在单机环境下部署Lucida系统。
系统要求
在开始部署前,请确保您的环境满足以下要求:
-
硬件要求:
- 至少18GB的可用磁盘空间
- 至少7GB的可用内存
- 8080端口未被占用
-
软件要求:
- 已安装Docker
- 如果是在Mac OS X上部署,需要安装Virtualbox或VMWare Fusion
- 确保Docker可以拉取18GB大小的镜像
部署步骤详解
1. 创建Kubernetes集群
运行对应操作系统的集群启动脚本:
sudo ./cluster_up_<your_os>.sh
这个脚本会在单机上通过Docker创建一个Kubernetes集群。如果需要多机集群,请参考Kubernetes官方文档。
2. 配置文件修改
需要修改以下配置文件:
-
数据存储路径配置:
- 打开
mongo-controller.yaml
和qa-controller.yaml
- 修改
hostPath
字段,指向您希望存储MongoDB和OpenEphyra数据的目录 - 确保对这些目录有写权限
- 打开
-
知识库配置:
- 如果使用Wikipedia作为额外知识库,按照
qa-controller.yaml
中的注释将其移动到指定目录 - 否则,从
args
字段中移除export wiki_indri_index=...
这一行
- 如果使用Wikipedia作为额外知识库,按照
-
副本数量调整:
- 根据需要修改
*-controller
中的副本数量
- 根据需要修改
3. 自定义Docker镜像(可选)
如果您希望从源码构建Docker镜像而非使用预构建镜像:
- 修改所有
*-controller
中的image
字段 - 设置本地Kubernetes容器注册表
4. HTTPS配置(可选)
如果您有letsencrypt生成的SSL证书并希望配置HTTPS:
-
根据内联注释修改以下文件:
web-controller-https.yaml asrmaster-controller-https.yaml
-
重命名以下文件:
mv asrworker-controller-https.yaml asrworker-controller.yaml mv asrmaster-controller-https.yaml asrmaster-controller.yaml mv web-controller-https.yaml web-controller.yaml mv web-service-https.yaml web-service.yaml
5. 启动服务
运行以下命令启动所有Kubernetes服务和Pod:
sudo ./start_services.sh
注意:
- 拉取镜像可能需要较长时间
- 如果设备空间不足,可能会看到
ImagePullBackOff
错误状态
6. 访问系统
在浏览器中访问:
- HTTP:
http://localhost:30000
- HTTPS(如配置):
https://<YOUR_DOMAIN_NAME>:30000
Apache服务器可能需要几分钟才能正常工作。如果页面长时间无法加载,请参考下一节的调试方法。
调试技巧
如果遇到问题,可以使用以下命令进行调试:
-
检查服务和Pod状态:
kubectl get service|pod
-
查看Pod详细信息:
kubectl describe pod <pod_name>
-
进入运行中的容器:
docker ps | grep <controller_name> docker exec -it <running_container_id> bash
常见问题解决方案:
- 看到"Internal Server Error":检查web容器中的日志文件
/usr/local/lucida/lucida/commandcenter/apache/logs/
- MongoDB容器无法启动:检查27017端口是否被占用
并终止占用该端口的进程sudo netstat -tulpn | grep 27017
集群销毁
要销毁集群,可以使用以下步骤:
-
查看所有Docker容器:
docker ps
-
停止并删除所有Kubernetes相关容器
也可以使用以下便捷函数:
function docker-flush(){
dockerlist=$(docker ps -a -q)
if [ "${dockerlist}" != "" ]; then
for d in ${dockerlist}; do
echo "***** ${d}"
docker stop ${d} 2>&1 > /dev/null
docker rm ${d} 2>&1 > /dev/null
done
fi
}
总结
本文详细介绍了Lucida项目在Kubernetes环境下的部署流程,包括系统要求、部署步骤、配置修改、HTTPS设置以及常见问题的调试方法。通过遵循这些步骤,您应该能够成功部署并运行Lucida系统。如果在部署过程中遇到任何问题,可以参考调试部分的内容进行排查。