用途:将 TAO 容器任务作为 Kubernetes Job 提交,适用于可经 kubeconfig 访问的任意集群(EKS/GKE/AKS/本地),或在 Pod 内使用集群服务账号。默认单 Pod,传入 num_nodes>1 可启用多节点分布式训练(使用 Indexed Job 与 headless Service)。该能力仅通过 SDK 提供,没有纯 kubectl 启动路径。
主要能力:使用 tao_sdk.platforms.kubernetes 的 KubernetesSDK 构建 V1Job,设置资源 nvidia.com/gpu 以调度到 GPU 节点,传递 env_vars 并注入 S3/NGC/HF 凭据;restart_policy=Never、backoff_limit=0,失败直接暴露;ttl_seconds_after_finished=3600 自动清理。支持状态查询、日志、副本诊断与失败分析。多节点时导出 WORLD_SIZE、NUM_GPU_PER_NODE、NNODES、NPROC_PER_NODE、NODE_RANK、MASTER_ADDR、MASTER_PORT 等环境变量供 TAO 入口或 torchrun 使用。
使用方式:使用前需通过预检,包括 GPU 主机运行时、安装 SDK 与 kubernetes 额外依赖、集群可达(kubeconfig 或集群内账号)、GPU Operator/设备插件。自管理节点需运行 GPU 主机安装脚本;托管集群可设 TAO_K8S_SKIP_NODE_RUNTIME_CHECK=1。可选配置包括 TAO_K8S_NAMESPACE、TAO_K8S_CONTEXT、NGC_KEY、S3 相关凭据。多节点要求 k8s 1.28+,Pod 间 29500 端口可达。
限制:暂不支持弹性/容错训练、Gang 调度、MPI/Horovod 以及共享存储的持久卷(仅支持经 script_runner 的 S3),也不会自动从 NGC_KEY 创建镜像拉取密钥,需预先在命名空间创建并传入名称。