运行数据持久化

数据库文件、用户上传和其他需要跨发布保留的数据,应使用项目数据卷。emptyDir 会随 Pod 销毁,只适合缓存和临时文件。

创建或接入数据卷

进入项目空间“数据卷”,选择一种来源:

  • 空白卷:创建平台托管的 PVC。
  • 已有 PVC:引用现有 PVC;选择“纳管”会把生命周期交给平台,需要明确确认。
  • VolumeSnapshot:从同集群快照恢复。
  • 导入归档:Filesystem 使用 tar.gz,Block 使用 raw.zst

创建时选择运行集群、容量、StorageClass、访问模式和卷模式。WaitForFirstConsumer StorageClass 可能在首次挂载前显示“准备中”,仍可被部署配置选择。

挂载到应用

  1. 编辑同一项目空间、同一集群的部署配置。
  2. 在“数据卷”中选择项目数据卷。
  3. Filesystem 卷填写绝对 mountPath;Block 卷填写绝对 devicePath
  4. 保存并创建新 Release。

删除应用或部署配置只会解绑数据卷,不会自动删除 PVC。容量只能扩大;需要更换 StorageClass、访问模式或卷模式时,请新建卷并迁移数据。

导入与导出

导入会把归档直接写入临时 Transfer Pod 挂载的目标卷,不经过对象存储、浏览器预哈希或平台本地完整暂存。API 与 Transfer Pod 会在同一次流传输中独立计算摘要并核对完整性。导入期间会持续复核当前账号、会话或 Token、Scope 和项目角色;任一授权失效都会中止写入。连接中断后不能续传,也不能在原目标卷上重试;请删除失败的导入卷并创建一次全新导入,避免残留数据与新归档混合。只有 Transfer 和数据卷都进入成功/就绪终态后,才可以认为恢复完成。

导出时可选择:

  • 自动:空闲卷直接导出,使用中卷优先创建 CSI Snapshot。
  • 快照:必须使用 CSI Snapshot;快照是 crash-consistent,不等同于应用一致性备份。
  • 在线读取:允许读取使用中的 Filesystem,内容可能变化,仅 Owner/Admin 可选。

导出内容从 Transfer Pod 直接流式下载,不保留可重复下载的服务端归档,也不支持断点续传。下载授权是绑定当前用户、会话和 Transfer 的短期一次性票据,下载期间授权失效会停止输出。只有下载完成且 Transfer 显示“成功”才表示本次备份完成;连接中断后需要重新导出。

永久删除托管卷会删除底层 PVC,无法恢复。删除前先检查挂载和传输影响,并完成必要备份。

管理员前置条件

导入与导出不需要 S3 或其他对象存储。运行集群必须允许平台创建临时 Transfer Pod、挂载目标 PVC,并允许 API 通过 Kubernetes exec 流式读写;Transfer helper 镜像必须与 Worker 同版本。反向代理还必须允许长时间请求与响应流,且不缓冲正文。持续无进展的流会被回收,单次流式传输最长运行 7 天。可选上限和镜像配置见 API 配置Worker 配置

平台历史数据保留

“全局设置 → 数据保留”只清理过期事件、通知、任务轨迹和日志,不会删除项目数据卷、账单账本或运行中的任务数据。管理员应先预览命中数量,再执行不可撤销的手动清理;需要长期保存的日志应提前导出到外部系统。