earayu commited on
Commit
8737b6e
·
1 Parent(s): 21f40c1

feat: update README

Browse files
Files changed (2) hide show
  1. k8s-deploy/README-zh.md +191 -0
  2. 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: