大模型训练平台架构(Volcano 调度 + Kubeflow Operator 分布式训练)
2026-08-11 09:57:40
# Kubernetes
一、背景
分布式训练(数据并行 / 模型并行)要求所有 Worker 同时启动且网络通信稳定。普通 K8s 调度可能把任务拆散导致“等不齐”,需要 Gang Scheduling。
二、环境信息
- K8s + GPU 节点
- 调度器:Volcano v1.8
- 训练 Operator:Kubeflow PyTorchOperator / TFOperator
三、操作要点
1. 安装 Volcano
1 | kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/v1.8.0/installer/volcano-development.yaml |
2. 使用 PodGroup 保证 Gang 调度
1 | apiVersion: batch.volcano.sh/v1alpha1 |
3. Kubeflow PyTorchJob
1 | apiVersion: kubeflow.org/v1 |
4. 数据集共享
训练数据放共享存储(NFS / CephFS PVC),所有 Worker 挂载同一 PVC,避免重复下载。
四、验证方式
1 | kubectl get pods -l job-name=pytorch-dist # 4 个同时 Running |
五、常见问题
- Gang 死锁:资源总量不足 minAvailable,需扩容或降副本
- NCCL 通信失败:检查节点间网络(RDMA/IB)、CNI、防火墙、MTU
- 数据加载慢:用本地缓存或高性能共享存储,开启多进程预取
- 节点故障:Volcano 支持任务级重调度;结合检查点(checkpoint)续训