@@ -491,19 +491,32 @@ kubectl -n weknora create secret generic weknora-llm \
491491
492492> ⚠️ `TENANT_AES_KEY`/`SYSTEM_AES_KEY` 必须备份;丢失后租户 api_key、模型 key、向量库凭证等加密字段不可恢复(UI 会显示 `enc:v1:...` 密文)。
493493
494- # ## 12.8 chart 的 gap 及处理(待讨论)
494+ # ## 12.8 chart 的 gap 及处理
495495
496- 1. **docreader `/tmp/docreader` 共享卷缺失**
496+ 1. **docreader `/tmp/docreader` 共享卷缺失** ✅ **已修复,PR 已提交上游**
497497 - 现象:chart 的 `docreader` Deployment 未挂载、`app` 未只读挂载 `/tmp/docreader`;而 `docker-compose.yml` 里 docreader RW 挂载、app RO 挂载该卷(解析产物跨容器共享)。
498- - 直接用 chart 部署会导致 app 读不到 docreader 解析产物。三个处理方向:
498+ - 直接用 chart 部署会导致 app 读不到 docreader 解析产物。
499+ - **解决方案**:已实现并向上游提交 PR [Tencent/WeKnora#1778](https://github.com/Tencent/WeKnora/pull/1778)
500+ - ` helm/values.yaml` :新增 `docreader.sharedVolume` 配置(默认 `emptyDir`,可切 `pvc`)
501+ - ` helm/templates/docreader.yaml` :加 `volumeMounts`(`/tmp/docreader` 读写)+ `volumes`
502+ - ` helm/templates/app.yaml` :加 `volumeMounts`(`/tmp/docreader` 只读)+ `volumes`
503+ - **使用方式**:
504+ ` ` ` yaml
505+ # 单节点/测试(默认 emptyDir)
506+ docreader:
507+ sharedVolume:
508+ type: emptyDir
509+ sizeLimit: 5Gi
510+
511+ # 生产多副本(PVC + ReadWriteMany,如 cephfs/NFS)
512+ docreader:
513+ sharedVolume:
514+ type: pvc
515+ pvcName: weknora-docreader-tmp # 预创建的 cephfs RWX PVC
516+ ` ` `
517+ - **本集群部署**:使用 `type: pvc` + `pvcName: weknora-docreader-tmp`(cephfs RWX PVC)
518+ - **状态**:等待上游审核合并。合并前可先使用 fork 分支 [`lordk911:fix/helm-docreader-shared-volume`](https://github.com/lordk911/WeKnora/tree/fix/helm-docreader-shared-volume)
499519
500- | 方向 | 做法 | 评价 |
501- |---|---|---|
502- | (a) post-render patch | `helm --post-renderer` + kustomize 给 docreader/app 补 cephfs RWX 共享卷(docreader RW / app RO) | 不改 chart,部署命令稍复杂;**推荐起步** |
503- | (b) fork chart | 给 chart 加 `docreader/app.extraVolumes` 支持再挂共享卷 | 最干净,但要维护 fork |
504- | (c) 走对象存储 | 确认 docreader 把解析产物写 MinIO、app 从 MinIO 读 | 需查 `docreader/config.py`、`DOCREADER_IMAGE_OUTPUT_DIR` 逻辑;若支持则无需共享卷 |
505-
506- - **待讨论定方向**(见 12.9-5)。
5075202. **paradedb tag**:chart 默认 `v0.18.9-pg17`,values 覆盖 `v0.22.2-pg17`(对齐 compose)。
5085213. **CRYPTO_MASTER_KEY / CRYPTO_SALT**:chart 未注入这两个 env;crypto_state 落 `/data/files` 文件。单副本可正常工作;**多副本前**须在 `app.extraEnv` 显式设齐 `CRYPTO_MASTER_KEY`/`CRYPTO_SALT`,否则各副本 crypto_state 不一致。
509522
@@ -513,7 +526,7 @@ kubectl -n weknora create secret generic weknora-llm \
5135262. **Harbor 项目 + push 账号**:建 `weknora` 项目并提供可 push 账号
5145273. **外部 LLM provider + key**:选定 provider(DeepSeek / OpenAI / 智谱 / 火山…)及 key、embedding 模型
5155284. **MinIO bucket**:在现有 MinIO 建 bucket `weknora` + 取/建专用 access key
516- 5. **docreader 共享卷方向 **:12.8-1 的 (a)/(b)/(c) 选一
529+ 5. **docreader 共享卷 PVC **:创建 cephfs RWX PVC `weknora-docreader-tmp`(见 12.8-1)
517530
518531# ## 12.10 安装与验证
519532
@@ -535,13 +548,13 @@ helm install weknora ./helm -n weknora --create-namespace \
535548
536549# ## 12.11 风险与备注
537550
538- - **docreader 共享卷**:见 12.8-1,必须先定方向再部署,否则解析链路断
551+ - **docreader 共享卷**:✅ 已通过 PR [#1778](https://github.com/Tencent/WeKnora/pull/1778) 修复,等待上游合并。合并前使用 fork 分支部署。
539552- **自签证书**:浏览器告警,需信任或换内部 CA
540553- **app 多副本**:必须先补齐 `CRYPTO_MASTER_KEY`/`CRYPTO_SALT`/`TENANT_AES_KEY`/`SYSTEM_AES_KEY`
541554- **cephfs RWX 性能**:docreader 解析大 PDF 产生大量临时图片,cephfs 弱于本地盘;若成瓶颈可改 docreader 作 app sidecar + emptyDir(但牺牲独立扩缩容)
542555- **proto 冲突**:本次用预构建镜像 + 默认 postgres(pgvector),不引入 milvus,无 qdrant/milvus proto 冲突
543556
544- > 📄 引用:[helm/README.md](./helm/README.md)、[helm/values.yaml](./helm/values.yaml)、[helm/templates/app.yaml](./helm/templates/app.yaml)、[helm/templates/docreader.yaml](./helm/templates/docreader.yaml)、[docker-compose.yml](./docker-compose.yml)、[.env.example](./.env.example)
557+ > 📄 引用:[helm/README.md](./helm/README.md)、[helm/values.yaml](./helm/values.yaml)、[helm/templates/app.yaml](./helm/templates/app.yaml)、[helm/templates/docreader.yaml](./helm/templates/docreader.yaml)、[docker-compose.yml](./docker-compose.yml)、[.env.example](./.env.example)、[PR # 1778](https://github.com/Tencent/WeKnora/pull/1778)
545558
546559---
547560
0 commit comments