DataMate 是一个基于 Kubernetes 的机器学习平台,支持模型训练、数据标注等功能。本指南将帮助您完成 DataMate 在 Kubernetes 集群上的安装部署。
- Kubernetes 集群(建议版本 >= 1.20)
- Helm 3.x 已安装
- kubectl 已配置并可访问集群
- 有足够的集群权限(包括创建命名空间、PVC、Service 等权限)
- 镜像仓库访问权限
cd tools
./install.sh --repo <镜像仓库地址> -n model-engine安装过程中会交互式提示输入以下信息:
| 步骤 | 提示 | 说明 |
|---|---|---|
| 镜像仓库密码 | Enter your registry password: |
如果未跳过镜像加载/推送 |
| 节点隔离 | Configure dedicated nodes? |
可选,按回车跳过 |
| 数据库密码 | Enter database password: |
必填,DB_PASSWORD |
| 证书密码 | Enter SSL certificate password (enter to skip): |
可选,按回车跳过 |
| JWT 密钥 | 自动生成 | 无需手动输入 |
| Label Studio Token | 自动生成 | 无需手动输入 |
| MinIO 密钥 | 自动生成 | 无需手动输入(Milvus 模式) |
注意:
POSTGRE_PASSWORD和LABEL_STUDIO_PASSWORD自动使用DB_PASSWORD,无需单独输入。
./install.sh --repo <镜像仓库地址> -n model-engine./install.sh --repo <镜像仓库地址> -n model-engine --skip-milvus --skip-label-studio当 DataMate 需要配套 ModelEngine 安装时,需使用以下参数:
| 参数 | 说明 | 示例 |
|---|---|---|
--ns / -n / --namespace |
Kubernetes 命名空间,需与 ModelEngine 一致 | model-engine |
--repo |
镜像仓库地址 | https://registry.example.com/ |
--repo-user |
镜像仓库用户名 | admin |
--storage-class / --sc |
存储类名称 | sc-system-manage |
--dataset |
dataset pvc 容量 | 500Gi |
--operator |
operator pvc 容量 | 50Gi |
--skip-haproxy |
跳过 HAProxy 配置(由 ModelEngine 统一管理) | - |
bash ./install.sh \
--ns model-engine \
--repo https://registry.example.com/ \
--repo-user admin \
--storage-class sc-system-manage \
--dataset 500Gi \
--operator 50Gi \
--port 30000bash ./install.sh \
--ns model-engine \
--repo https://registry.example.com/ \
--repo-user admin \
--storage-class sc-system-manage \
--dataset 500Gi \
--operator 50Gi \
--skip-haproxy需要额外执行如下步骤:
- 通过terrabase指定datamate端口号,进入terrabase安装目录执行如下命令: 其中ip为《ModelEngine 25.0.RC1 安装部署指南》5.4.1步骤1设置的弹性ip地址,端口为自定义的datamate访问的前端端口号,建议为ModelEngine访问的前端端口号+1
bash ./install.sh --install \
--ns model-engine \
--repo https://registry.example.com/ \
--repo-user admin \
--sc sc-system-manage \
--datamate https://<ip>:<port>- 参考《ModelEngine 25.0.RC1 安装部署指南》5.4.1步骤4,创建用于数据使能的弹性负载均衡,其中5.4.1-表elb-service参数说明的参数“容器端口”与“服务端口”分别设置为上一步datamate访问的前端端口号和3000
- 命名空间必须与 ModelEngine 保持一致
- dataset 和 operator 的 PVC 容量需根据实际业务需求合理设置
--repo <url>: 指定镜像仓库 URL- 示例:
--repo https://registry.example.com/
- 示例:
| 参数 | 说明 | 默认值 |
|---|---|---|
-n, --ns, --namespace |
Kubernetes 命名空间 | model-engine |
--sc, --storage-class |
存储类名称 | sc-system-manage |
--repo-user |
镜像仓库用户名 | admin |
--port |
服务端口 | 30000 |
--address-type |
地址类型(ip/domain) | management |
--node-port |
NodePort 端口 | - |
--operator |
operator pvc 容量 | - |
--dataset |
dataset pvc 容量 | - |
--path |
本地存储主机路径(local-storage 时使用) | /opt/k8s/ |
--package |
部署包文件路径 | - |
--real-ip-mode |
真实 IP 转发模式(off / proxy_protocol) | proxy_protocol |
| 参数 | 说明 |
|---|---|
--skip-push |
跳过镜像推送 |
--skip-load |
跳过镜像加载 |
--skip-milvus |
跳过 Milvus 安装 |
--skip-label-studio / --skip-ls |
跳过 Label Studio 安装 |
--skip-haproxy |
跳过 HAProxy 配置 |
--skip-node-setup |
跳过节点隔离配置 |
--disable-jwt |
禁用 JWT 用户数据隔离 |
-h, --help |
显示帮助信息 |
./install.sh --repo https://registry.example.com/ \
--sc nfs-storage \
-n model-engine./install.sh --repo https://registry.example.com/ \
--sc local-storage \
--path /opt/k8s \
-n model-engine注意:使用本地存储时,脚本会在指定路径下创建以下目录:
- datamate/dataset
- datamate/flow
- datamate/database
- datamate/operator
- datamate/log
- milvus/etcd
- milvus/minio
- milvus/milvus
- milvus/milvus-log
- label-studio/data
- label-studio/dataset
./install.sh --repo https://registry.example.com/ \
--node-port 30080 \
-n model-engine./install.sh --repo https://registry.example.com/ \
--operator 50Gi \
--dataset 500Gi \
-n model-engine如果镜像已经存在于集群的镜像仓库中:
./install.sh --repo https://registry.example.com/ \
--skip-load \
--skip-push \
-n model-engine./install.sh --repo https://registry.example.com/ \
--package /path/to/operator-package.zip \
-n model-engine核心平台,提供模型训练、任务管理等功能。
向量数据库,用于存储和检索向量数据。
数据标注工具,支持多种标注类型。
脚本会按以下顺序执行:
- 配置解析:读取命令行参数
- 配置写入:更新 values.yaml 配置文件(命名空间、镜像仓库、存储类等)
- 存储配置:创建必要的本地存储目录并设置权限(如使用 local-storage)
- 镜像处理:加载并推送镜像到镜像仓库
- 节点隔离:交互式配置节点标签和污点(可选,
--skip-node-setup跳过) - 密钥收集:交互式收集密钥(DB 密码等用户输入,token/MinIO 密钥自动随机,CERT_PASS 经 kmc 自动获取)并经 sed 写入 values.yaml
- Helm 安装:依次部署 DataMate、Milvus、Label Studio
- 路由配置:配置 HAProxy 路由规则(如未跳过)
- 等待就绪:等待所有 Pod 进入 Ready 状态(最长 300 秒)
- 算子安装:加载自定义算子包(如指定)
安装完成后,可通过以下方式访问:
- DataMate 前端:
http://<节点IP>:30000 - Label Studio:
http://<节点IP>:30001
如果指定了 --node-port:
- DataMate 前端:
http://<节点IP>:<node-port> - Label Studio:
http://<节点IP>:<node-port+1>
# 查看 Pod 状态
kubectl get pods -n model-engine
# 查看 Service
kubectl get svc -n model-engine
# 查看 PVC
kubectl get pvc -n model-engine检查镜像仓库地址和密码是否正确,网络是否可达。
kubectl describe pod <pod-name> -n model-engine
kubectl logs <pod-name> -n model-engine检查存储类是否配置正确,集群是否有足够的存储资源。
使用 local-storage 时,确保宿主机目录已创建且有正确权限。如遇 /label-studio/data/media permission denied,请确认安装时 mkdir -p 和 chmod 已正确执行。
确保 HAProxy 组件正常运行,且有相应权限。
./install.sh --repo https://registry.example.com/ -n model-engine# 卸载 Helm releases
helm uninstall label-studio -n model-engine --ignore-not-found
helm uninstall milvus -n model-engine --ignore-not-found
helm uninstall datamate -n model-engine --ignore-not-found
# 清理 local-storage PV(如有残留)
kubectl delete pv label-studio-data-pv label-studio-dataset-pv --ignore-not-found
# 删除命名空间
kubectl delete ns model-engine --ignore-not-found- 使用本地存储(local-storage)时,请确保节点有足够的磁盘空间
- Label Studio 使用三方镜像,local-storage 模式下脚本会自动创建目录并设置 777 权限
- 如果目录已存在且包含数据,脚本会提示确认是否删除
- 镜像仓库密码不会被存储,仅用于本次安装
- 安装过程会等待最多 300 秒让所有 Pod 就绪
- 重装前建议先清理旧的 PV/PVC(尤其是 label-studio),避免路径冲突
- 建议在测试环境先验证配置后再在生产环境部署
查看完整参数说明:
./install.sh --help