Kubernetes / Helm 部署(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/HKUDS/LightRAG/8.2-kubernetes-helm-deployment
翻译时间:2026-05-27T08:45:18.230Z
翻译模型:deepseek-chat
原文字符数:8180
项目:LightRAG (lightrag)
---
Kubernetes / Helm 部署
相关源文件
以下文件用于生成此 Wiki 页面:
k8s-deploy/databases/00-config.shk8s-deploy/databases/01-prepare.shk8s-deploy/databases/02-install-database.shk8s-deploy/databases/03-uninstall-database.shk8s-deploy/databases/04-cleanup.shk8s-deploy/databases/install-kubeblocks.shk8s-deploy/databases/scripts/common.shk8s-deploy/databases/uninstall-kubeblocks.shk8s-deploy/install_lightrag.shk8s-deploy/install_lightrag_dev.shk8s-deploy/lightrag/Chart.yamlk8s-deploy/lightrag/templates/deployment.yamlk8s-deploy/lightrag/values.yamlk8s-deploy/uninstall_lightrag.shk8s-deploy/uninstall_lightrag_dev.sh
LightRAG 提供了一套完整的 Kubernetes 部署方案,可从本地开发环境扩展到生产级集群。该部署通过 Helm Chart 和自动化脚本进行管理,并与 KubeBlocks 数据库操作器集成,以提供高可用的存储后端。
部署模式
LightRAG 在 Kubernetes 中支持两种主要部署策略:轻量级(开发) 和 生产级。
1. 轻量级部署
此模式适用于测试或小规模使用场景。它使用基于文件的本地存储,无需外部数据库集群。
- 存储后端:
JsonKVStorage、NanoVectorDBStorage、NetworkXStorage和JsonDocStatusStoragek8s-deploy/install_lightrag_dev.sh:56-59。 - 持久化:使用
emptyDir或标准持久卷声明(PVC)来存储.json和.graphml文件k8s-deploy/lightrag/templates/deployment.yaml:66-78。
2. 生产级部署
此模式利用专用数据库引擎来实现可扩展性和高性能。
- 存储后端:
PGKVStorage、PGVectorStorage、Neo4JStorage和PGDocStatusStoragek8s-deploy/lightrag/values.yaml:63-68。 - 数据库编排:使用 KubeBlocks 管理 PostgreSQL(含
pgvector)和 Neo4j 集群k8s-deploy/install_lightrag.sh:24-27。
部署流程示意图
下图展示了高层级部署脚本与其管理的具体 Helm 和 Kubernetes 实体之间的关系。
"K8s 部署编排"
graph TD
subgraph "Shell 脚本"
A["install_lightrag.sh"] --> B["01-prepare.sh"]
A --> C["02-install-database.sh"]
A --> D["helm upgrade --install"]
E["install_lightrag_dev.sh"] --> D
end
subgraph "Helm Chart (lightrag)"
D --> F["deployment.yaml"]
D --> G["values.yaml"]
F --> H["ConfigMap/Secret (环境变量)"]
end
subgraph "KubeBlocks 操作器"
B --> I["KubeBlocks CRDs"]
C --> J["PostgreSQL 集群"]
C --> K["Neo4j 集群"]
end
subgraph "代码实体"
H -- "设置" --> L["LIGHTRAG_KV_STORAGE"]
H -- "设置" --> M["LIGHTRAG_GRAPH_STORAGE"]
end
J -- "提供" --> L
K -- "提供" --> M
来源:k8s-deploy/install_lightrag.sh:23-80、k8s-deploy/install_lightrag_dev.sh:54-67、k8s-deploy/lightrag/values.yaml:50-83、k8s-deploy/databases/01-prepare.sh:10-30
---
Helm Chart 配置
位于 k8s-deploy/lightrag 目录下的 Helm Chart k8s-deploy/lightrag/Chart.yaml:1-5 将应用程序参数化,以适应 Kubernetes 环境。
资源和持久化设置
部署默认使用单个副本,以避免使用基于文件的存储时出现文件锁定冲突 k8s-deploy/lightrag/values.yaml:1-21。
| 参数 | 默认值 | 描述 |
|---|---|---|
replicaCount | 1 | Pod 副本数量。 |
updateStrategy | Recreate | 更新策略,确保旧 Pod 在新 Pod 启动前释放存储 k8s-deploy/lightrag/values.yaml:21-22。 |
resources.limits.memory | 2Gi | LightRAG 容器的内存限制 k8s-deploy/lightrag/values.yaml:31。 |
persistence.ragStorage.size | 10Gi | 知识图谱和向量数据的存储卷大小 k8s-deploy/lightrag/values.yaml:39。 |
环境变量映射
deployment.yaml 模板将 Values.env 直接映射到容器的环境变量中,从而允许在运行时配置大语言模型(LLM)提供商和存储后端 k8s-deploy/lightrag/templates/deployment.yaml:43-57。同时,它还会挂载一个基于 Secret 的 .env 文件到 /app/.env k8s-deploy/lightrag/templates/deployment.yaml:44-45。
来源:k8s-deploy/lightrag/values.yaml:1-42、k8s-deploy/lightrag/templates/deployment.yaml:19-45
---
数据库集成(KubeBlocks)
对于生产环境,LightRAG 使用 KubeBlocks 在集群内配置托管的数据库服务。
配置工作流
- 准备阶段:
01-prepare.sh安装 KubeBlocks 操作器及必要的自定义资源定义(CRD),如Snapshotterk8s-deploy/databases/install-kubeblocks.sh:12-43。 - 附加组件安装:安装 PostgreSQL、Neo4j、Redis 和 Qdrant 的 KubeBlocks 附加组件
k8s-deploy/databases/01-prepare.sh:24-30。 - 集群部署:
02-install-database.sh触发实际数据库实例的创建(例如pg-cluster、neo4j-cluster)k8s-deploy/databases/02-install-database.sh:12-17。 - 向量支持:
install_lightrag.sh脚本会等待 PostgreSQL 主 Pod 就绪,然后执行CREATE EXTENSION vector;以启用pgvector支持k8s-deploy/install_lightrag.sh:30-37。
密钥管理
数据库的凭证由 KubeBlocks 自动生成,部署脚本通过 kubectl get secrets 获取这些凭证,并将其作为环境变量传递给 Helm 发布 k8s-deploy/install_lightrag.sh:40-60。
数据库/代码关联
此图展示了 values.yaml 中的 Kubernetes 服务名称如何映射到 LightRAG 引擎内部的存储类。
"K8s 服务到代码存储的映射"
graph LR
subgraph "Kubernetes 服务"
PG_SVC["pg-cluster-postgresql-postgresql:5432"]
N4J_SVC["neo4j-cluster-neo4j:7687"]
end
subgraph "lightrag/values.yaml"
V_PG_HOST["POSTGRES_HOST"]
V_N4J_URI["NEO4J_URI"]
end
subgraph "LightRAG 存储类"
KV["PGKVStorage"]
VEC["PGVectorStorage"]
GRPH["Neo4JStorage"]
end
PG_SVC --> V_PG_HOST
N4J_SVC --> V_N4J_URI
V_PG_HOST --> KV
V_PG_HOST --> VEC
V_N4J_URI --> GRPH
来源:k8s-deploy/lightrag/values.yaml:63-79、k8s-deploy/install_lightrag.sh:70-82
---
安装与卸载
安装脚本
- 生产环境:
bash k8s-deploy/install_lightrag.sh - 开发环境:
bash k8s-deploy/install_lightrag_dev.sh
- 需要设置 OPENAI_API_KEY 环境变量 k8s-deploy/install_lightrag.sh:7-15。 - 部署完整的数据库栈和 lightrag Helm 发布。
- 仅使用轻量级本地存储部署 lightrag-dev 发布 k8s-deploy/install_lightrag_dev.sh:54-67。
卸载脚本
- 仅卸载应用:
uninstall_lightrag.sh或uninstall_lightrag_dev.sh会移除 Helm 发布,但保留数据库k8s-deploy/uninstall_lightrag.sh:1-5。 - 完全清理:
databases/uninstall-kubeblocks.sh会移除 KubeBlocks 操作器、CRD 以及所有关联的数据库命名空间k8s-deploy/databases/uninstall-kubeblocks.sh:26-48。
来源:k8s-deploy/install_lightrag.sh:1-96、k8s-deploy/install_lightrag_dev.sh:1-82、k8s-deploy/databases/uninstall-kubeblocks.sh:1-52