Skip to content

Commit 075d333

Browse files
shenk-bclaude
andcommitted
docs: update deployment plan with PR Tencent#1778 status
- Section 12.8: Mark docreader shared volume gap as resolved with PR link - Section 12.9: Update prerequisite item 5 to reflect PVC creation - Section 12.11: Update risk section to show issue is resolved - Add PR Tencent#1778 to references Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent c8a327a commit 075d333

1 file changed

Lines changed: 26 additions & 13 deletions

File tree

WeKnora部署讨论记录.md

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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)。
507520
2. **paradedb tag**:chart 默认 `v0.18.9-pg17`,values 覆盖 `v0.22.2-pg17`(对齐 compose)。
508521
3. **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 \
513526
2. **Harbor 项目 + push 账号**:建 `weknora` 项目并提供可 push 账号
514527
3. **外部 LLM provider + key**:选定 provider(DeepSeek / OpenAI / 智谱 / 火山…)及 key、embedding 模型
515528
4. **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

Comments
 (0)