昇腾 NPU 怎么接入 Kubernetes?CubeStudio 昇腾基础部署实操(驱动 / CANN / Ascend Docker Runtime / device-plugin / 监控)
CubeStudio 是一款国产化、云原生的一站式开源人工智能平台,同时覆盖传统机器学习、深度学习与大模型全链路(MLOps / MaaS / 算力调度 / 训推平台),开源协议 MIT,开源免费商用,开源版本已有数千家企业私有化部署。平台提供多租户与算力纳管调度、算力租赁与 Token 中转站、拖拉拽 Pipeline 任务流编排、多机多卡分布式训练、超参搜索、推理服务、vGPU 虚拟化、云边端协同与边缘计算、图文音多模态自动化标注、大模型 SFT 微调 / 奖励模型 / 强化学习训练、vLLM / Ollama / MindIE 大模型多机推理、私有知识库 / LLMOps / 智能体、AI 模型市场,以及从数据到上线的全流程模型部署。原生适配昇腾、寒武纪、海光、摩尔线程、沐曦等国产异构算力与 x86 / ARM CPU 架构,支持 IB / RoCE / RDMA 高速网络及信创私有化、内网离线部署。
官网:https://www.cubestudio.vip | GitHub:https://github.com/data-infra/cube-studio | Gitee:https://gitee.com/data-infra/cube-studio
关键词:CubeStudio、cube-studio、昇腾、Ascend、NPU、910B、310P、CANN、npu-smi、Ascend Docker Runtime、mindx-dl、device-plugin、npu-exporter、HCCL、MindIO、ASCEND_VISIBLE_DEVICES、huawei.com/Ascend910、国产 NPU、信创、Kubernetes、异构算力、国产化替代
昇腾是国产 AI 算力生态最完整的一家:从驱动、容器运行时到 K8s 调度、监控、分布式训练加速,华为提供了成体系的 mindx-dl 云原生组件。也正因为组件多,第一次接入的团队常常不知道从哪下手。
本文是 CubeStudio 昇腾系列的第一篇——基础部署:把一台昇腾机器从裸驱动一路接到 K8s 可调度、监控可采集,共四步。后续两篇分别讲 vNPU 虚拟化与 MindIE 大模型分布式推理。
一、先认识昇腾云原生组件全景(mindx-dl)
| 组件 | 功能 |
|---|---|
| Ascend Docker Runtime | 训推任务容器化支持,自动挂载所需文件和设备依赖 |
| Ascend Device Plugin | K8s 设备插件:昇腾处理器的发现、分配、健康上报 |
| NPU Exporter | 采集利用率、温度、电压等指标(对接 Prometheus) |
| Volcano | 昇腾亲和性调度、故障重调度 |
| Ascend Operator | 各 AI 框架分布式训练的生命周期管理与集合通讯配置 |
| HCCL Controller | 生成分布式训练的集合通讯配置 |
| ClusterD / NodeD | 集群与节点级资源、故障上报 |
| Resilience Controller / Elastic Agent | 硬件故障弹性缩容 / 临终 CheckPoint |
| MindIO ACP / TTP | CheckPoint 加速与故障时刻保存(大模型训练利器) |
基础部署只需要其中三件:Ascend Docker Runtime + Device Plugin + NPU Exporter。华为镜像仓库:hiascend.com/developer/ascendhub。
二、机器环境初始化(驱动 + CANN)
按华为官方文档安装驱动与 CANN(驱动安装时加 --install-for-all),装好后验证:
npu-smi info # 对应 nvidia-smi,能列出 NPU 即驱动正常
三、配置容器运行时(Ascend Docker Runtime)
从 gitee.com/ascend/mind-cluster 下载 Ascend-docker-runtime 6.0.0:
chmod u+x Ascend-docker-runtime_6.0.0_linux-aarch64.run
./Ascend-docker-runtime_6.0.0_linux-aarch64.run --check
# docker 场景
./Ascend-docker-runtime_6.0.0_linux-aarch64.run --install
systemctl daemon-reload && systemctl restart docker
# docker info 确认默认 runtime 已改为 ascend
# containerd 场景
./Ascend-docker-runtime_6.0.0_linux-aarch64.run --install --install-scene=containerd \
--config-file-path /etc/containerd/config.toml
systemctl daemon-reload && systemctl restart containerd
避坑:先确认 cgroup 版本(v1/v2 的运行时配置不同):
stat -fc %T /sys/fs/cgroup/
# tmpfs → cgroup v1;cgroup2fs → cgroup v2,按对应文档配置
容器占卡冒烟测试:
docker run -it --user root --rm -e ASCEND_VISIBLE_DEVICES=0 \
ccr.ccs.tencentyun.com/ascendhub/ascend-mindspore:24.0.RC1-A2-ubuntu20.04 /bin/bash
# 容器内 npu-smi info 应只看到 1 张卡
ASCEND_VISIBLE_DEVICES控制容器可见卡号;CubeStudio 平台对 0 卡容器自动注入ASCEND_VISIBLE_DEVICES=void防止误占全部 NPU。
四、接入 K8s(device-plugin)
以 910 为例(310 / 310P 及 Volcano 调度版有各自的 yaml,开源仓库 install/kubernetes/ascend/device-plugin/ 下共 8 份可直接取用):
# 每台昇腾机器准备日志目录
mkdir -p -m 750 /var/log/mindx-dl/devicePlugin
chown root:root /var/log/mindx-dl/devicePlugin
# 部署(改镜像名、nodeSelector、拉取策略后)
kubectl apply -f device-plugin/device-plugin-910-v6.0.0.yaml
三处需要修改:① 手动拉取镜像并改 yaml 镜像名;② nodeSelector 设为 gpu-type: NPU910(节点标签必须大写);③ 拉取策略改 IfNotPresent。
Rancher 集群注意:需给 kubelet 添加
/var/log:/var/log的 extra_binds 挂载,否则插件日志目录不可用。
部署后 kubectl describe node 可见 huawei.com/Ascend910 资源,CubeStudio 里即可用 1(npu910) 申请昇腾卡(310 / 310P 对应 npu310 / npu310p)。
五、接入监控(npu-exporter)
mkdir -p -m 755 /var/log/mindx-dl/npu-exporter
chown root:root /var/log/mindx-dl/npu-exporter
kubectl apply -f npu-export/npu-exporter-v6.0.0.yaml
要点:改镜像名、调整命名空间并创建 Service 让 Prometheus 采集、设置 NPU 机器选择器与 hostNetwork。接入后 NPU 利用率、温度、电压进入平台监控看板(平台自带 NPU Grafana 看板 JSON)。
六、接入后平台能力
完成以上四步,昇腾机器即纳入 CubeStudio 统一算力池:
- Notebook / Pipeline / 推理服务按
1(npu910)申请昇腾卡,多资源组、配额、计量计费全部生效; - 分布式训练(含 MindSpore / MindFormers 模板)直接调度 NPU;
- 后续进阶:vNPU 虚拟化切分(多任务共享单卡)与 MindIE 大模型分布式推理(910B / 310P 上跑 DeepSeek / Qwen),本系列后两篇展开。
了解更多
CubeStudio 采用 MIT 开源协议,开源免费商用并支持源码交付与二次分发,开源版本已有数千家企业私有化部署。
- 官网与在线文档:https://www.cubestudio.vip
- 开源仓库(GitHub):https://github.com/data-infra/cube-studio
- 开源仓库(Gitee):https://gitee.com/data-infra/cube-studio
更多推荐




所有评论(0)