agentic_huge_data_base / wiki
页面 LightRAG · 7.4 Kubernetes 部署·DeepWiki 中文全文译文

7.4 · Kubernetes 部署(Kubernetes Deployment)

轻量图谱增强检索 · 聚焦本章的模块关系、源码依据与实现要点。

项目LightRAG 章节7.4 状态全文译文 模块存储与持久化、配置治理、安装与启动、测试、发布与运维
源码线索
  • k8s-deploy/README-zh.md
  • k8s-deploy/README.md
  • k8s-deploy/databases/00-config.sh
  • k8s-deploy/databases/01-prepare.sh
  • k8s-deploy/databases/02-install-database.sh
  • k8s-deploy/databases/03-uninstall-database.sh
  • k8s-deploy/databases/04-cleanup.sh
  • k8s-deploy/databases/install-kubeblocks.sh
  • k8s-deploy/databases/scripts/common.sh
  • k8s-deploy/databases/uninstall-kubeblocks.sh
模块标签
  • 存储与持久化
  • 配置治理
  • 安装与启动
  • 测试、发布与运维
  • 界面与交互

章节正文

Kubernetes 部署

此页面内容来自 DeepWiki 重组后的对应页面(来源:8-2.zh.md)

Kubernetes / Helm 部署

相关源文件

本章引用的主要源码文件:

  • k8s-deploy/databases/00-config.sh
  • k8s-deploy/databases/01-prepare.sh
  • k8s-deploy/databases/02-install-database.sh
  • k8s-deploy/databases/03-uninstall-database.sh
  • k8s-deploy/databases/04-cleanup.sh
  • k8s-deploy/databases/install-kubeblocks.sh
  • k8s-deploy/databases/scripts/common.sh
  • k8s-deploy/databases/uninstall-kubeblocks.sh
  • k8s-deploy/install_lightrag.sh
  • k8s-deploy/install_lightrag_dev.sh
  • k8s-deploy/lightrag/Chart.yaml
  • k8s-deploy/lightrag/templates/deployment.yaml
  • k8s-deploy/lightrag/values.yaml
  • k8s-deploy/uninstall_lightrag.sh
  • k8s-deploy/uninstall_lightrag_dev.sh

LightRAG 提供了一套完整的 Kubernetes 部署方案,可从本地开发环境扩展到生产级集群。该部署通过 Helm Chart 和自动化脚本进行管理,并与 KubeBlocks 数据库操作器集成,以提供高可用的存储后端。

部署模式

LightRAG 在 Kubernetes 中支持两种主要部署策略:轻量级(开发)生产级

1. 轻量级部署

此模式适用于测试或小规模使用场景。它使用基于文件的本地存储,无需外部数据库集群。

  • 存储后端JsonKVStorageNanoVectorDBStorageNetworkXStorageJsonDocStatusStorage k8s-deploy/install_lightrag_dev.sh:56-59
  • 持久化:使用 emptyDir 或标准持久卷声明(PVC)来存储 .json.graphml 文件 k8s-deploy/lightrag/templates/deployment.yaml:66-78
2. 生产级部署

此模式利用专用数据库引擎来实现可扩展性和高性能。

  • 存储后端PGKVStoragePGVectorStorageNeo4JStoragePGDocStatusStorage k8s-deploy/lightrag/values.yaml:63-68
  • 数据库编排:使用 KubeBlocks 管理 PostgreSQL(含 pgvector)和 Neo4j 集群 k8s-deploy/install_lightrag.sh:24-27
部署流程示意图

下图展示了高层级部署脚本与其管理的具体 Helm 和 Kubernetes 实体之间的关系。

"K8s 部署编排"

LightRAG · 部署流程示意图 · 图 1
LightRAG · 部署流程示意图 · 图 1

来源:k8s-deploy/install_lightrag.sh:23-80k8s-deploy/install_lightrag_dev.sh:54-67k8s-deploy/lightrag/values.yaml:50-83k8s-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

参数默认值描述
replicaCount1Pod 副本数量。
updateStrategyRecreate更新策略,确保旧 Pod 在新 Pod 启动前释放存储 k8s-deploy/lightrag/values.yaml:21-22
resources.limits.memory2GiLightRAG 容器的内存限制 k8s-deploy/lightrag/values.yaml:31
persistence.ragStorage.size10Gi知识图谱和向量数据的存储卷大小 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-42k8s-deploy/lightrag/templates/deployment.yaml:19-45

数据库集成(KubeBlocks)

对于生产环境,LightRAG 使用 KubeBlocks 在集群内配置托管的数据库服务。

配置工作流
  1. 准备阶段01-prepare.sh 安装 KubeBlocks 操作器及必要的自定义资源定义(CRD),如 Snapshotter k8s-deploy/databases/install-kubeblocks.sh:12-43
  2. 附加组件安装:安装 PostgreSQL、Neo4j、Redis 和 Qdrant 的 KubeBlocks 附加组件 k8s-deploy/databases/01-prepare.sh:24-30
  3. 集群部署02-install-database.sh 触发实际数据库实例的创建(例如 pg-clusterneo4j-clusterk8s-deploy/databases/02-install-database.sh:12-17
  4. 向量支持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 服务到代码存储的映射"

LightRAG · 数据库/代码关联 · 图 2
LightRAG · 数据库/代码关联 · 图 2

来源:k8s-deploy/lightrag/values.yaml:63-79k8s-deploy/install_lightrag.sh:70-82

安装与卸载

安装脚本
  • 生产环境bash k8s-deploy/install_lightrag.sh
    • 需要设置 OPENAI_API_KEY 环境变量 k8s-deploy/install_lightrag.sh:7-15
    • 部署完整的数据库栈和 lightrag Helm 发布。
  • 开发环境bash k8s-deploy/install_lightrag_dev.sh
    • 仅使用轻量级本地存储部署 lightrag-dev 发布 k8s-deploy/install_lightrag_dev.sh:54-67
卸载脚本
  • 仅卸载应用uninstall_lightrag.shuninstall_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-96k8s-deploy/install_lightrag_dev.sh:1-82k8s-deploy/databases/uninstall-kubeblocks.sh:1-52