跳到主要内容

Dataflow 部署指南

📘 概述

CSGHUB Dataflow 是 CSGHub 平台中的数据流管理与标注子系统,用于处理模型训练数据、标注任务、数据预处理与分发等流程。

通过 Helm Chart 部署,可以快速在 Kubernetes 环境中运行 Dataflow 及其依赖的 Label Studio、Redis、PostgreSQL、MongoDB 等组件。

本 Chart 既支持 一键安装全部依赖(内置模式),也支持 连接外部托管资源


⚙️ 环境要求

项目说明
Kubernetes 版本v1.28+
Helm 版本v3.12+
网络要求集群节点需能访问 CSGHub 主服务(externalUrl)
权限要求具备创建命名空间、Service、PVC、Ingress 等资源的权限
集群要求需要支持 ReadWriteMany 的存储卷

🧩 1. 准备工作

添加 CSGHub Chart 仓库

helm repo add csghub https://charts.opencsg.com/repository/csghub
helm repo update

创建命名空间(可选)

kubectl create namespace csghub

🏗️ 2. 部署 Dataflow

基础安装(内置数据库与缓存)

如果你仅用于测试或开发环境,可直接使用默认配置:

  • externalUrl

    helm get notes csghub -n csghub | grep -A 6 'Access your CSGHub'

    通过以上命令获取 CSGHub 访问地址。

  • 执行部署操作

    helm install dataflow csghub/dataflow \
    --namespace csghub \
    --create-namespace \
    --set global.ingress.domain="example.com" \
    --set externalUrl="<csghub externalUrl>" \
    --set dataflow.postgresql.database="csghub_dataflow" \
    --set labelStudio.postgresql.database="csghub_label_studio"

此方式会自动启动:

  • Dataflow 主服务
  • Label Studio 标注服务
  • 内置 PostgreSQL、Redis、MongoDB
  • 内置 NGINX Ingress 控制器

使用外部资源

建议在生产环境中使用外部托管数据库与缓存服务:

helm install dataflow csghub/dataflow \
--namespace csghub \
--create-namespace \
--set dataflow.postgresql.database="csghub_dataflow" \
--set labelStudio.postgresql.database="csghub_label_studio" \
-f custom-values.yaml

示例 custom-values.yaml:

global:
ingress:
domain: "csghub.company.com"
tls:
enabled: true
secretName: "csghub-tls"

postgresql:
enabled: false
external:
host: "pg.company.com"
port: 5432
user: "csghub"
password: "******"
sslmode: "require"

redis:
enabled: false
external:
host: "redis.company.com"
port: 6379
password: "******"

mongo:
enabled: false
external:
host: "mongo.company.com"
port: 27017
user: "admin"
password: "******"

externalUrl: "https://csghub.company.com"

⚙️ 3. 主要配置说明

全局配置(global)

参数默认值说明
global.editionee部署版本:社区版(ce) / 企业版(ee)
global.ingress.domainexample.com访问域名基础地址
global.image.tagv1.12.0镜像版本号
global.persistence.size10Gi默认持久化卷大小
global.postgresql.enabledtrue启用内置 PostgreSQL
global.redis.enabledtrue启用内置 Redis
global.mongo.enabledtrue启用内置 MongoDB

Dataflow 服务配置

参数默认值说明
externalUrlhttps://csghub.example.comCSGHub 主系统访问地址
dataflow.image.repositoryopencsghq/dataflowDataflow 镜像
dataflow.image.tagv1.12.0镜像版本号
dataflow.persistence.size100Gi数据流持久化卷大小
dataflow.postgresql可覆盖默认 PostgreSQL 配置
dataflow.redis可覆盖默认 Redis 配置
dataflow.mongo可覆盖默认 MongoDB 配置

Worker 配置

参数默认值说明
worker.logging.levelinfoCelery Worker 日志等级

Label Studio 配置

参数默认值说明
labelStudio.image.repositoryopencsghq/label-studioLabel Studio 镜像
labelStudio.image.tagv1.12.0镜像版本
labelStudio.persistence.size100Gi标注数据持久化卷大小
labelStudio.securityContext.runAsUser0容器运行用户 UID
labelStudio.postgresql.database"csghub_label_studio"标注数据库名

内置第三方组件

组件参数默认值说明
PostgreSQLpostgresql.image.repositoryopencsghq/postgres内置数据库镜像
postgresql.databases[csghub_dataflow, csghub_label_studio]启动时自动创建的数据库
postgresql.persistence.size50Gi存储大小
Redisredis.image.repositoryredis缓存镜像
redis.persistence.size10Gi持久化卷大小
MongoDBmongo.image.repositoryopencsghq/mongo内置 Mongo 镜像
mongo.persistence.size10Gi存储大小

🔍 4. 验证部署

检查 Pod 状态:

kubectl get pods -n csghub

验证访问:

kubectl get svc -n csghub

功能验证需要对接到 CSGHub 。


🔄 5. 升级与卸载

升级 Chart

helm upgrade dataflow csghub/dataflow -n csghub -f custom-values.yaml

卸载 Chart

helm uninstall dataflow -n csghub-dataflow

🧠 常见问题(FAQ)

问题原因解决方案
Dataflow 无法访问主系统externalUrl 未正确配置确认地址与 TLS 配置
Label Studio 启动失败数据库或 PVC 配置错误检查 PostgreSQL/Mongo 挂载路径
镜像拉取失败私有仓库未配置凭据添加 image.pullSecrets
Redis/Mongo 未启动与外部资源配置冲突禁用内置后重新部署