earayu
commited on
Commit
·
8737b6e
1
Parent(s):
21f40c1
feat: update README
Browse files- k8s-deploy/README-zh.md +191 -0
- k8s-deploy/README.md +2 -0
k8s-deploy/README-zh.md
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# LightRAG Helm Chart
|
2 |
+
|
3 |
+
这是用于在Kubernetes集群上部署LightRAG服务的Helm chart。
|
4 |
+
|
5 |
+
LightRAG有两种推荐的部署方法:
|
6 |
+
1. **轻量级部署**:使用内置轻量级存储,适合测试和小规模使用
|
7 |
+
2. **生产环境部署**:使用外部数据库(如PostgreSQL和Neo4J),适合生产环境和大规模使用
|
8 |
+
|
9 |
+
> 如果您想要部署过程的视频演示,可以查看[bilibili](https://www.bilibili.com/video/BV1bUJazBEq2/)上的视频教程,对于喜欢视觉指导的用户可能会有所帮助。
|
10 |
+
|
11 |
+
## 前提条件
|
12 |
+
|
13 |
+
确保安装和配置了以下工具:
|
14 |
+
|
15 |
+
* **Kubernetes集群**
|
16 |
+
* 需要一个运行中的Kubernetes集群。
|
17 |
+
* 对于本地开发或演示,可以使用[Minikube](https://minikube.sigs.k8s.io/docs/start/)(需要≥2个CPU,≥4GB内存,以及Docker/VM驱动支持)。
|
18 |
+
* 任何标准的云端或本地Kubernetes集群(EKS、GKE、AKS等)也可以使用。
|
19 |
+
|
20 |
+
* **kubectl**
|
21 |
+
* Kubernetes命令行工具,用于管理集群。
|
22 |
+
* 按照官方指南安装:[安装和设置kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)。
|
23 |
+
|
24 |
+
* **Helm**(v3.x+)
|
25 |
+
* Kubernetes包管理器,用于安装LightRAG。
|
26 |
+
* 通过官方指南安装:[安装Helm](https://helm.sh/docs/intro/install/)。
|
27 |
+
|
28 |
+
## 轻量级部署(无需外部数据库)
|
29 |
+
|
30 |
+
这种部署选项使用内置的轻量级存储组件,非常适合测试、演示或小规模使用场景。无需外部数据库配置。
|
31 |
+
|
32 |
+
您可以使用提供的便捷脚本或直接使用Helm命令部署LightRAG。两种方法都配置了`lightrag/values.yaml`文件中定义的相同环境变量。
|
33 |
+
|
34 |
+
### 使用便捷脚本(推荐):
|
35 |
+
|
36 |
+
```bash
|
37 |
+
export OPENAI_API_BASE=<您的OPENAI_API_BASE>
|
38 |
+
export OPENAI_API_KEY=<您的OPENAI_API_KEY>
|
39 |
+
bash ./install_lightrag_dev.sh
|
40 |
+
```
|
41 |
+
|
42 |
+
### 或直接使用Helm:
|
43 |
+
|
44 |
+
```bash
|
45 |
+
# 您可以覆盖任何想要的环境参数
|
46 |
+
helm upgrade --install lightrag ./lightrag \
|
47 |
+
--namespace rag \
|
48 |
+
--set-string env.LIGHTRAG_KV_STORAGE=JsonKVStorage \
|
49 |
+
--set-string env.LIGHTRAG_VECTOR_STORAGE=NanoVectorDBStorage \
|
50 |
+
--set-string env.LIGHTRAG_GRAPH_STORAGE=NetworkXStorage \
|
51 |
+
--set-string env.LIGHTRAG_DOC_STATUS_STORAGE=JsonDocStatusStorage \
|
52 |
+
--set-string env.LLM_BINDING=openai \
|
53 |
+
--set-string env.LLM_MODEL=gpt-4o-mini \
|
54 |
+
--set-string env.LLM_BINDING_HOST=$OPENAI_API_BASE \
|
55 |
+
--set-string env.LLM_BINDING_API_KEY=$OPENAI_API_KEY \
|
56 |
+
--set-string env.EMBEDDING_BINDING=openai \
|
57 |
+
--set-string env.EMBEDDING_MODEL=text-embedding-ada-002 \
|
58 |
+
--set-string env.EMBEDDING_DIM=1536 \
|
59 |
+
--set-string env.EMBEDDING_BINDING_API_KEY=$OPENAI_API_KEY
|
60 |
+
```
|
61 |
+
|
62 |
+
### 访问应用程序:
|
63 |
+
|
64 |
+
```bash
|
65 |
+
# 1. 在终端中运行此端口转发命令:
|
66 |
+
kubectl --namespace rag port-forward svc/lightrag-dev 9621:9621
|
67 |
+
|
68 |
+
# 2. 当命令运行时,打开浏览器并导航到:
|
69 |
+
# http://localhost:9621
|
70 |
+
```
|
71 |
+
|
72 |
+
## 生产环境部署(使用外部数据库)
|
73 |
+
|
74 |
+
### 1. 安装数据库
|
75 |
+
> 如果您已经准备好了数据库,可以跳过此步骤。详细信息可以在:[README.md](databases%2FREADME.md)中找到。
|
76 |
+
|
77 |
+
我们推荐使用KubeBlocks进行数据库部署。KubeBlocks是一个云原生数据库操作符,可以轻松地在Kubernetes上以生产规模运行任何数据库。
|
78 |
+
|
79 |
+
首先,安装KubeBlocks和KubeBlocks-Addons(如已安装可跳过):
|
80 |
+
```bash
|
81 |
+
bash ./databases/01-prepare.sh
|
82 |
+
```
|
83 |
+
|
84 |
+
然后安装所需的数据库。默认情况下,这将安装PostgreSQL和Neo4J,但您可以修改[00-config.sh](databases%2F00-config.sh)以根据需要选择不同的数据库:
|
85 |
+
```bash
|
86 |
+
bash ./databases/02-install-database.sh
|
87 |
+
```
|
88 |
+
|
89 |
+
验证集群是否正在运行:
|
90 |
+
```bash
|
91 |
+
kubectl get clusters -n rag
|
92 |
+
# 预期输出:
|
93 |
+
# NAME CLUSTER-DEFINITION TERMINATION-POLICY STATUS AGE
|
94 |
+
# neo4j-cluster Delete Running 39s
|
95 |
+
# pg-cluster postgresql Delete Running 42s
|
96 |
+
|
97 |
+
kubectl get po -n rag
|
98 |
+
# 预期输出:
|
99 |
+
# NAME READY STATUS RESTARTS AGE
|
100 |
+
# neo4j-cluster-neo4j-0 1/1 Running 0 58s
|
101 |
+
# pg-cluster-postgresql-0 4/4 Running 0 59s
|
102 |
+
# pg-cluster-postgresql-1 4/4 Running 0 59s
|
103 |
+
```
|
104 |
+
|
105 |
+
### 2. 安装LightRAG
|
106 |
+
|
107 |
+
LightRAG及其数据库部署在同一Kubernetes集群中,使配置变得简单。
|
108 |
+
安装脚本会自动从KubeBlocks获取所有数据库连接信息,无需手动设置数据库凭证:
|
109 |
+
|
110 |
+
```bash
|
111 |
+
export OPENAI_API_BASE=<您的OPENAI_API_BASE>
|
112 |
+
export OPENAI_API_KEY=<您的OPENAI_API_KEY>
|
113 |
+
bash ./install_lightrag.sh
|
114 |
+
```
|
115 |
+
|
116 |
+
### 访问应用程序:
|
117 |
+
|
118 |
+
```bash
|
119 |
+
# 1. 在终端中运行此端口转发命令:
|
120 |
+
kubectl --namespace rag port-forward svc/lightrag 9621:9621
|
121 |
+
|
122 |
+
# 2. 当命令运行时,打开浏览器并导航到:
|
123 |
+
# http://localhost:9621
|
124 |
+
```
|
125 |
+
|
126 |
+
## 配置
|
127 |
+
|
128 |
+
### 修改资源配置
|
129 |
+
|
130 |
+
您可以通过修改`values.yaml`文件来配置LightRAG的资源使用:
|
131 |
+
|
132 |
+
```yaml
|
133 |
+
replicaCount: 1 # 副本数量,可根据需要增加
|
134 |
+
|
135 |
+
resources:
|
136 |
+
limits:
|
137 |
+
cpu: 1000m # CPU限制,可根据需要调整
|
138 |
+
memory: 2Gi # 内存限制,可根据需要调整
|
139 |
+
requests:
|
140 |
+
cpu: 500m # CPU请求,可根据需要调整
|
141 |
+
memory: 1Gi # 内存请求,可根据需要调整
|
142 |
+
```
|
143 |
+
|
144 |
+
### 修改持久存储
|
145 |
+
|
146 |
+
```yaml
|
147 |
+
persistence:
|
148 |
+
enabled: true
|
149 |
+
ragStorage:
|
150 |
+
size: 10Gi # RAG存储大小,可根据需要调整
|
151 |
+
inputs:
|
152 |
+
size: 5Gi # 输入数据存储大小,可根据需要调整
|
153 |
+
```
|
154 |
+
|
155 |
+
### 配置环境变量
|
156 |
+
|
157 |
+
`values.yaml`文件中的`env`部分包含LightRAG的所有环境配置,类似于`.env`文件。当使用helm upgrade或helm install命令时,可以使用--set标志覆盖这些变量。
|
158 |
+
|
159 |
+
```yaml
|
160 |
+
env:
|
161 |
+
HOST: 0.0.0.0
|
162 |
+
PORT: 9621
|
163 |
+
WEBUI_TITLE: Graph RAG Engine
|
164 |
+
WEBUI_DESCRIPTION: Simple and Fast Graph Based RAG System
|
165 |
+
|
166 |
+
# LLM配置
|
167 |
+
LLM_BINDING: openai # LLM服务提供商
|
168 |
+
LLM_MODEL: gpt-4o-mini # LLM模型
|
169 |
+
LLM_BINDING_HOST: # API基础URL(可选)
|
170 |
+
LLM_BINDING_API_KEY: # API密钥
|
171 |
+
|
172 |
+
# 嵌入配置
|
173 |
+
EMBEDDING_BINDING: openai # 嵌入服务提供商
|
174 |
+
EMBEDDING_MODEL: text-embedding-ada-002 # 嵌入模型
|
175 |
+
EMBEDDING_DIM: 1536 # 嵌入维度
|
176 |
+
EMBEDDING_BINDING_API_KEY: # API密钥
|
177 |
+
|
178 |
+
# 存储配置
|
179 |
+
LIGHTRAG_KV_STORAGE: PGKVStorage # 键值存储类型
|
180 |
+
LIGHTRAG_VECTOR_STORAGE: PGVectorStorage # 向量存储类型
|
181 |
+
LIGHTRAG_GRAPH_STORAGE: Neo4JStorage # 图存储类型
|
182 |
+
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage # 文档状态存储类型
|
183 |
+
```
|
184 |
+
|
185 |
+
## 注意事项
|
186 |
+
|
187 |
+
- 在部署前确保设置了所有必要的环境变量(API密钥和数据库密码)
|
188 |
+
- 出于安全原因,建议使用环境变量传递敏感信息,而不是直接写入脚本或values文件
|
189 |
+
- 轻量级部署适合测试和小规模使用,但数据持久性和性能可能有限
|
190 |
+
- 生产环境部署(PostgreSQL + Neo4J)推荐用于生产环境和大规模使用
|
191 |
+
- 有关更多自定义配置,请参考LightRAG官方文档
|
k8s-deploy/README.md
CHANGED
@@ -6,6 +6,8 @@ There are two recommended deployment methods for LightRAG:
|
|
6 |
1. **Lightweight Deployment**: Using built-in lightweight storage, suitable for testing and small-scale usage
|
7 |
2. **Production Deployment**: Using external databases (such as PostgreSQL and Neo4J), suitable for production environments and large-scale usage
|
8 |
|
|
|
|
|
9 |
## Prerequisites
|
10 |
|
11 |
Make sure the following tools are installed and configured:
|
|
|
6 |
1. **Lightweight Deployment**: Using built-in lightweight storage, suitable for testing and small-scale usage
|
7 |
2. **Production Deployment**: Using external databases (such as PostgreSQL and Neo4J), suitable for production environments and large-scale usage
|
8 |
|
9 |
+
> If you'd like a video walkthrough of the deployment process, feel free to check out this optional [video tutorial](https://youtu.be/JW1z7fzeKTw?si=vPzukqqwmdzq9Q4q) on YouTube. It might help clarify some steps for those who prefer visual guidance.
|
10 |
+
|
11 |
## Prerequisites
|
12 |
|
13 |
Make sure the following tools are installed and configured:
|