k8s-deploy/README-zh.md
这是用于在Kubernetes集群上部署LightRAG服务的Helm chart。
LightRAG有两种推荐的部署方法:
如果您想要部署过程的视频演示,可以查看bilibili上的视频教程,对于喜欢视觉指导的用户可能会有所帮助。
确保安装和配置了以下工具:
Kubernetes集群
kubectl
Helm(v3.x+)
这种部署选项使用内置的轻量级存储组件,非常适合测试、演示或小规模使用场景。无需外部数据库配置。
您可以使用提供的便捷脚本或直接使用Helm命令部署LightRAG。两种方法都配置了lightrag/values.yaml文件中定义的相同环境变量。
export OPENAI_API_BASE=<您的OPENAI_API_BASE>
export OPENAI_API_KEY=<您的OPENAI_API_KEY>
bash ./install_lightrag_dev.sh
# 您可以覆盖任何想要的环境参数
helm upgrade --install lightrag ./lightrag \
--namespace rag \
--set-string env.LIGHTRAG_KV_STORAGE=JsonKVStorage \
--set-string env.LIGHTRAG_VECTOR_STORAGE=NanoVectorDBStorage \
--set-string env.LIGHTRAG_GRAPH_STORAGE=NetworkXStorage \
--set-string env.LIGHTRAG_DOC_STATUS_STORAGE=JsonDocStatusStorage \
--set-string env.LLM_BINDING=openai \
--set-string env.LLM_MODEL=gpt-4o-mini \
--set-string env.LLM_BINDING_HOST=$OPENAI_API_BASE \
--set-string env.LLM_BINDING_API_KEY=$OPENAI_API_KEY \
--set-string env.EMBEDDING_BINDING=openai \
--set-string env.EMBEDDING_MODEL=text-embedding-ada-002 \
--set-string env.EMBEDDING_DIM=1536 \
--set-string env.EMBEDDING_BINDING_API_KEY=$OPENAI_API_KEY
# 1. 在终端中运行此端口转发命令:
kubectl --namespace rag port-forward svc/lightrag-dev 9621:9621
# 2. 当命令运行时,打开浏览器并导航到:
# http://localhost:9621
如果您已经准备好了数据库,可以跳过此步骤。详细信息可以在:README.md中找到。
我们推荐使用KubeBlocks进行数据库部署。KubeBlocks是一个云原生数据库操作符,可以轻松地在Kubernetes上以生产规模运行任何数据库。
首先,安装KubeBlocks和KubeBlocks-Addons(如已安装可跳过):
bash ./databases/01-prepare.sh
然后安装所需的数据库。默认情况下,这将安装PostgreSQL和Neo4J,但您可以修改00-config.sh以根据需要选择不同的数据库:
bash ./databases/02-install-database.sh
验证集群是否正在运行:
kubectl get clusters -n rag
# 预期输出:
# NAME CLUSTER-DEFINITION TERMINATION-POLICY STATUS AGE
# neo4j-cluster Delete Running 39s
# pg-cluster postgresql Delete Running 42s
kubectl get po -n rag
# 预期输出:
# NAME READY STATUS RESTARTS AGE
# neo4j-cluster-neo4j-0 1/1 Running 0 58s
# pg-cluster-postgresql-0 4/4 Running 0 59s
# pg-cluster-postgresql-1 4/4 Running 0 59s
LightRAG及其数据库部署在同一Kubernetes集群中,使配置变得简单。 安装脚本会自动从KubeBlocks获取所有数据库连接信息,无需手动设置数据库凭证:
export OPENAI_API_BASE=<您的OPENAI_API_BASE>
export OPENAI_API_KEY=<您的OPENAI_API_KEY>
bash ./install_lightrag.sh
# 1. 在终端中运行此端口转发命令:
kubectl --namespace rag port-forward svc/lightrag 9621:9621
# 2. 当命令运行时,打开浏览器并导航到:
# http://localhost:9621
您可以通过修改values.yaml文件来配置LightRAG的资源使用:
replicaCount: 1 # 副本数量,可根据需要增加
resources:
limits:
cpu: 1000m # CPU限制,可根据需要调整
memory: 2Gi # 内存限制,可根据需要调整
requests:
cpu: 500m # CPU请求,可根据需要调整
memory: 1Gi # 内存请求,可根据需要调整
persistence:
enabled: true
ragStorage:
size: 10Gi # RAG存储大小,可根据需要调整
inputs:
size: 5Gi # 输入数据存储大小,可根据需要调整
values.yaml文件中的env部分包含LightRAG的所有环境配置,类似于.env文件。当使用helm upgrade或helm install命令时,可以使用--set标志覆盖这些变量。
env:
HOST: 0.0.0.0
PORT: 9621
WEBUI_TITLE: Graph RAG Engine
WEBUI_DESCRIPTION: Simple and Fast Graph Based RAG System
# LLM配置
LLM_BINDING: openai # LLM服务提供商
LLM_MODEL: gpt-4o-mini # LLM模型
LLM_BINDING_HOST: # API基础URL(可选)
LLM_BINDING_API_KEY: # API密钥
# 嵌入配置
EMBEDDING_BINDING: openai # 嵌入服务提供商
EMBEDDING_MODEL: text-embedding-ada-002 # 嵌入模型
EMBEDDING_DIM: 1536 # 嵌入维度
EMBEDDING_BINDING_API_KEY: # API密钥
# 存储配置
LIGHTRAG_KV_STORAGE: PGKVStorage # 键值存储类型
LIGHTRAG_VECTOR_STORAGE: PGVectorStorage # 向量存储类型
LIGHTRAG_GRAPH_STORAGE: Neo4JStorage # 图存储类型
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage # 文档状态存储类型