一份可以直接改的 values
values.yaml
三个决定成败的值
ReadWriteMany
必填
RWO 的 claim 不会失败。Kubernetes 会给每个 Pod 各自一个卷,
于是多节点作业的 checkpoint 分片散落在不同 Pod 上,这次 run 再也续不了——
而日志里没有任何东西说明原因。chart 默认 RWX;StorageClass 必须真的支持它。
url
必填
训练 Pod 往它 POST 指标。用集群内服务名。
外部 ingress 地址会先出集群再绕回来;
127.0.0.1 是 worker 自己的回环。string
必填
没有
TUNEPLANE_WEB_JWT_SECRET,每个进程各用一把自己的密钥签名:
重启即全员掉线,多副本根本不可用。chart 的安装提示会在两项都没设时给出警告。密钥
secrets.create: true 会从 secrets.data 渲染一个 Secret——
测试集群上很方便,生产上不对,因为那些值会落进你的 release 历史。
把 secrets.existingSecret 指向由 kubectl create secret、Sealed Secrets
或 External Secrets Operator 产生的 Secret:
chart 替你做的一件事
TUNEPLANE_K8S_STORAGE_PVC 是从 chart 实际创建的那个 claim 填进去的,
所以执行器被告知的永远是真实存在的那个 claim。这一对关系手写时很容易错开——
执行器去检查一个并非被挂载的 claim、报告健康,而这个错位只有在某次多节点 run 续不上时才暴露。
只有复用一个不归 chart 所有的 claim 时才需要覆盖它:
挂载 Volume
mountPath 填上 TUNEPLANE_VOLUME_ROOT。
后半件是值得知道的那件。光挂上 claim 什么用也没有:没有 TUNEPLANE_VOLUME_ROOT,平台交付一个
Volume 的方式是每次运行都把它的内容复制进工作层,而你挂的那个 claim 从不会被读。不会有任何
东西报错,所以这种配置能放几个月都没人发现。
挂载路径不能位于 storage.mountPath 之下。真这么配控制台会拒绝启动,因为存储根是以可写方式
bind mount 进作业的,位于它下面的 Volume 会有第二条可写路径。
corpus.* 是同一个块的废弃写法,保留它是为了让改名之前写的 values 文件继续可用。它照旧挂载那个
claim,并且有意不填 TUNEPLANE_VOLUME_ROOT,这样升级 chart 不会改变现有部署交付 Volume 的
方式。两个块同时设置会被拒绝,而不是替你选一个。
apply 之前先验
确认成功
TUNEPLANE_K8S_STORAGE_SHARED 的声明和 claim 的真实访问模式做核对,
这正是能在作业之前抓到 RWO claim 的那道检查。
这个 chart 的每次改动都会跑
helm lint 和 helm template 验证。
对着真实集群安装不是这里的 CI 能做的事——没有哪个 runner 有集群——
所以在你的集群上第一次安装就是第一次真实测试。先跑上面那条 dry-run。原生采集器网关
设置gateway.enabled=true。同一个网关在 8443 端口提供 Node 控制、在 8444 端口接收采集器遥测。
必须启用工作存储。
按原生训练指标采集配置设置
config.TUNEPLANE_TELEMETRY_GATEWAY_TARGET、config.TUNEPLANE_TELEMETRY_COLLECTOR_ARTIFACT
和 config.TUNEPLANE_TELEMETRY_SPOOL_ROOT。
将固定版本的采集器产物放在控制台与 worker 可读的工作 PVC 中。
自动 TLS 会提供公开 CA,无需手动填写信任包路径。
使用外部管理的 TLS 时,将 gateway.tlsSecret 指向现有 Secret(含 tls.crt、tls.key),
并将 config.TUNEPLANE_TELEMETRY_TRUST_BUNDLE 设置为控制台与 worker 可读取的公开 CA 文件。
任务不会收到网关私钥。
训练 Pod 只挂载本次启动的只读授权目录 PVC 子路径,以及独立的本地主机缓冲目录。
缓冲使用 hostPath,集群策略必须明确允许配置的路径,并采用持久化本地磁盘和兼容的工作负载 UID。
训练输出继续使用原来的 PVC,不能把共享输出目录作为 SQLite 缓冲。
缓冲属于原主机;调度到另一台主机不会恢复原来的待确认记录。
保留原主机目录供恢复使用,不能把新建的空目录当作已经重放完成。
该部署配置不承诺主机永久丢失后的数据恢复。
初始化容器会把本次启动的目录设为 0700,并交给平台授权文件所属的 UID,
使使用相同 UID 的非 root 训练镜像能够写入。该容器只挂载本次缓冲目录,
以 UID 0 运行,仅保留 CHOWN 和 FOWNER 能力,不挂载授权 PVC 或网关凭据。
集群策略也需允许这一步初始化。root 训练镜像仍可使用。