.env.example 复制成 .env,把仍是模板值的密码和 JWT 密钥换成随机值,然后把整栈拉起来。
它是幂等的——改完 .env 再跑一次即可。
会起来哪些服务
开始之前
1
配置共享存储
设置
TUNEPLANE_STORAGE_ROOT=/srv/tuneplane。控制平面与每台 Node 在相同路径挂载共享工作存储。作业只获得授权范围内的挂载,不会获得整个存储根目录。2
启动控制平面
3
接入计算资源
注册 Node Fleet,再按Node 安装指南接入计算机器。单台计算机器也走同样的流程。Kubernetes 和 Slurm 集群分别注册为各自的 Fleet。
推荐配置
其余项都有可用的默认值,这几项没有。.env
TUNEPLANE_INGEST_URL 必须使用计算节点可访问的控制平面地址;回环地址指向计算节点自身。tuneplane-internal 网络内可解析。
整栈用 compose 拉起来;单独 docker run 应用镜像会报 failed to resolve host 'postgres'。
确认成功
从一台机器往外走
控制平面可以一直部署在这台无 GPU 的机器上。需要扩容时,增加 Node,或注册 Kubernetes、Slurm 集群对应的 Fleet。是否把控制平面迁入 Kubernetes 是独立的部署选择。原生训练指标采集
启用 Compose 的gateway profile 可启动网关:同一个进程在 8444 端口接收采集器遥测、
在 8443 端口提供 Node 控制通道,两者各自独立限流。
训练任务使用固定版本的 Rust 采集器,不需要额外的客户端证书签发服务。
启动时自动持久化网关 TLS 身份并提供公开 CA。将 TUNEPLANE_NODE_GATEWAY_TARGET
设置为节点可访问的 host:8443,加入时自动下发信任配置,私钥保留在控制平面。
所有副本必须共享 PostgreSQL、TUNEPLANE_SECRET_ENC_KEY 和 TUNEPLANE_WEB_JWT_SECRET。
使用 scripts/build-rust-collector.py 构建匹配执行主机的采集器,将完整产物目录
放在平台管理的工作存储中,不能放进任务包或训练输出。.env 配置示例:
TUNEPLANE_TELEMETRY_TRUST_BUNDLE。TUNEPLANE_TELEMETRY_SPOOL_BYTES 默认 256 MiB,TUNEPLANE_TELEMETRY_DRAIN_SECONDS 默认 30 秒,仅需调整限制时配置。Node 加入流程配置的是 Node 控制连接,不能替代上面三项遥测配置。
目标地址为 host:port,不带 URL 协议前缀;主机名必须与证书匹配,且执行主机能够访问。
信任包包含公开的签发 CA 证书链。网关副本共享数据库和固定的
TUNEPLANE_WEB_JWT_SECRET。仅在不启用原生采集时留空目标地址;必需的采集源会拒绝启动。
在每台执行主机的持久化本地磁盘上预建缓冲根目录,权限为 0700,归执行服务账户所有。
不要使用 NFS、容器可写层或临时存储。平台自动创建各次启动和各成员的子目录、签发独立续期凭据,
并以只读方式挂载授权文件。共享存储的 UID 必须允许任务读取自己的 0600 授权文件;
应对齐服务 UID,不要通过放宽凭据权限解决问题。
Node 或 Slurm Fleet:
分离存储磁盘
使用可选 overlay 将不同用途放到不同物理位置。所有 bind 的源与目标保持相同绝对路径。 gateway 使用只读挂载,训练任务仅获得执行器授予的子目录。
在
.env 中添加以下配置。API、worker 和 Node 必须使用相同值。
-f 参数。overlay 不会创建缺失的 bind 源目录。
它也支持存储布局列出的更细粒度缓存和状态覆盖,启动前需逐一准备目录。
已有外部挂载可保留原路径和所有权,通过 Storage Connection 注册,并以相同宿主机路径
只读挂载进 API/worker。不要对已有外部数据集或模型库递归更改所有者。
这是新安装示例。现有部署需先迁移文件和已保存的引用,再切换根目录。
宿主机目录存在不代表 NAS 挂载成功,应配置挂载依赖并执行预检。
overlay 不部署 S3 存储,也不迁移数据库数据。
代码沙箱是可选能力。默认 Compose 部署不接入宿主容器运行时;训练需要代码执行服务时,
可配置外部 TUNEPLANE_SANDBOX_ENDPOINT。显式启用平台自带沙箱时,需要另外提供 Docker 或 Podman 访问能力。
Node 加入时可自动保存网关地址和 CA。在控制平面设置
TUNEPLANE_NODE_GATEWAY_TARGET=网关域名:8443,并将
TUNEPLANE_NODE_GATEWAY_TRUST_BUNDLE 指向 API 容器可读取的公共 CA 文件,
例如现有存储挂载下的 /srv/tuneplane/platform/node-gateway-ca.pem。
该文件不能包含私钥;网关私钥仅保留在 gateway。