国家超算中心K8s 容器服务,新版容器和老版本的一些坑

*超算中心 K8s 容器服务**的定位、用途、优势和适用场景:

https://www.scnet.cn/ui/console/index.html#/container-service/container-group 新版只支持武汉,只能开一张卡,但是免费

老版本支持大部分算力中心 ,支持4张16g卡,但是需要开通或者收费

https://www.scnet.cn/ui/console/index.html#/container-service/add-container-instance

一、核心是什么

超算中心基于 Kubernetes(K8s) 搭建的容器化计算集群 ,就是把传统超算节点、异构加速卡(你这里的DCU)、CPU/内存资源,打包成独立容器 对外提供服务。

和普通云容器、本地Docker本质一致,但硬件是超算级算力(多核CPU、大内存、国产DCU加速卡)。

二、主要用途(超算用户最常用)

  1. 跑算力任务

    模型训练、推理、数值计算、仿真、大数据处理、AI任务等。你当前的环境配有DCU异构加速卡,主打AI/深度学习、并行计算。

  2. 统一调度硬件资源

    超算节点多、硬件杂(CPU/加速卡),K8s自动分配节点、管控资源配额(你看到的7核CPU/60G内存/16G DCU),避免多人抢资源、资源浪费。

  3. 环境一键复用&隔离

    • 容器自带独立运行环境(Python、CUDA、驱动、依赖库),不用反复装机配环境
    • 不同用户/任务环境互相隔离,互不干扰。
  4. 临时交互式开发 + 后台批量任务

    • 你现在 kubectl exec 进容器,属于交互式终端:调试代码、测试环境、排错、试运行;
    • 也可以提交离线任务,让容器在后台长时间跑训练/计算,不用一直挂着终端。

三、和传统超算(Slurm)的区别

超算中心一般两套体系并存:

  1. 传统 Slurm :老牌超算调度,偏向大规模并行计算、HPC仿真、MPI集群,适合超长时间、多节点集群任务。
  2. K8s 容器服务 :偏向轻量化、环境标准化、AI/云原生任务 ,上手更简单,环境迁移方便,主打单节点+加速卡场景(你现在就是单DCU节点)。

四、结合你当前环境的使用场景

从你的信息来看,这个环境定位很明确:

  • 单节点、大内存(60G)+ 国产DCU加速卡 → 主要用于 AI模型训练、推理、深度学习实验
  • /root/private_data持久化存储 :代码、数据集、模型权重放这里,重启容器不丢失;系统盘 /workspace 临时用。
  • 支持交互式登录,适合代码调试、实验验证,也可提交容器任务跑正式作业。

五、总结一句话

超算K8s容器 = 超算硬件 + 容器化环境 + K8s资源调度 ,给你提供开箱即用、环境隔离、带高端CPU/加速卡的计算沙箱,主要用来跑AI、大数据、高性能计算类任务。

老版本有挂载点

一句话:挂载点就是把"超算平台的持久化存储/共享目录"映射到你容器里的某个路径 ,让容器里读写这个路径,实际上是在操作平台上的永久存储,删容器数据不丢

一、通俗理解(类比)

  • 容器本身像一个临时虚拟机 :里面的 /workspace/ 系统盘都是临时的,删容器/重建就没了。
  • 挂载 = 给容器插了一块"永久硬盘"
    • 外部存储(超算平台):你的个人存储、项目共享盘、高速缓存盘。
    • 容器内挂载点(mountPath) :容器里的一个目录,比如 /root/private_data/work/home/你的账号
  • 你在容器里 cd /root/private_data其实就是直接读写超算平台上你的个人存储,容器没了文件还在。

二、超算互联网(scnet.cn)里的挂载点

你截图页面是"添加容器实例"的挂载配置区,常见三类:

1)个人持久化存储(必用)
  • 外部存储:平台给你分配的个人数据盘(独立于容器)。
  • 默认挂载点/root/private_data(或 /work/home/scneeghb00)。
  • 作用 :代码、数据集、模型权重放这里,重启/删容器都不丢
2)项目共享存储(组队用)
  • 外部存储:团队共享盘(同一项目成员都能读写)。
  • 挂载点 :如 /groups/项目名/share
  • 作用:多人协作,共享数据集、代码、结果。
3)高速缓存盘(跑任务用)
  • 外部存储:超算集群的高速本地盘(速度快、临时)。
  • 挂载点 :如 /sfs/cache
  • 作用 :放训练中间文件、临时数据,速度比个人盘快,但容器删了可能清空。

三、关键概念(页面上的字段)

  • 挂载点(容器内路径) :容器里的目录,比如 /root/private_data必须是容器内不存在或空的目录
  • 存储来源:选"个人存储""项目存储""高速缓存"等。
  • 只读/读写:默认读写;如果是公共数据集,可设只读防误删。

四、为什么一定要用挂载点?

  1. 数据不丢 :容器是临时环境,只有挂载目录的数据才持久化
  2. 数据互通 :多个容器、多个任务可以挂载同一个存储,共享数据
  3. 速度更快 :高速缓存盘比系统盘快,跑大模型训练必须用

五、你当前环境的对应关系

你登录后看到:

复制代码
/root/private_data 等价 /work/home/scneeghb00 → 个人持久化挂载点

这就是平台默认帮你挂载好的个人存储 ,不用自己配;新建容器时也可以手动添加更多挂载(比如项目盘、高速盘)。

老版本容器 ssh 模式,容易连不上 失败

bash 复制代码
国家超算中心 老版本 容器 提示 前实例已停止服务,可能的原因包括:实例被停用、关机或删除,您可以 返回 查看具体原因。若实例未删除,可重新启用/开机后刷新本页面,若实例被删除,请重新创建实例后使用SSH进入。 ,昆山节点

重启也没有用。而且我只用了一个dcu

这里有一个问题,部署一下 需要5-10分钟以上不像notebooke那样非常快

jupyterlab## 标题 模式 可以进入服务器,

jupyterlab 模式找不到节点的共享文件夹,不同于notebook,(全部加载)

你现在在老版本容器(worker-0)里看不到 /public/share、/public/home ,是因为老容器平台默认没把 /public 整个挂载进容器,只挂了一部分,或者根本没挂。

你看到的目录:

复制代码
bin   dev  home         lib    lib64   media  opt   public  run   srv  tmp  var   workspace
boot  etc  jupyter-ext  lib32  libx32  mnt    proc  root    sbin  sys  usr  work  容器juberlab

1. 哪个是共享目录?

  • /public :容器里确实有这个目录,但里面是空的或者只挂了少量子目录,不是超算集群那个完整的 /public。
  • /work、/workspace :一般是容器本地临时盘(不是集群共享存储)。
  • /public/share/acz6ty4okx、/public/home/acz6ty4okx :这两个是集群级共享路径,老容器默认不挂载,所以你在容器里 cd 进去会提示不存在。

2. 为什么找不到?(昆山老平台通病)

  • 老容器(jupyterlab/网页容器)不是全量挂载 /public ,只做了最小化挂载,没把 share、home 挂进来
  • 你看到的 /public 是容器内部的空目录或局部挂载点,和集群 login 节点的 /public 不是同一个。

3. 怎么在容器里访问到你的共享目录?

方法 A:在网页控制台重新创建容器(推荐)
  1. 停掉当前容器 → 删除;

  2. 新建容器时,在"存储/挂载"选项里勾选:

    • 挂载集群 /public 目录
    • 或手动添加:
      宿主机路径:/public
      容器内路径:/public
  3. 启动后进去就能看到:

    复制代码
    /public/share/acz6ty4okx
    /public/home/acz6ty4okx
方法 B:用 SSH 先登 login 节点,再跳容器(不用重建)
  1. Xshell 先连昆山登录节点(不是容器);

  2. 在 login 节点直接访问:

    bash 复制代码
    cd /public/share/acz6ty4okx
    cd /public/home/acz6ty4okx
  3. 要传文件:在 login 节点用 scprsync 传到容器,或容器 ssh 回 login 节点拿。

方法 C:容器内手动挂载(需要权限,老平台不一定行)
bash 复制代码
# 容器内(root)
mkdir -p /public/share /public/home
mount -t nfs ksnfs01:/public/share /public/share   # 昆山NFS地址,可能需要问运维

老容器一般禁止手动挂 NFS,大概率会报错。

4. 总结(你现在最该做的)

  • 容器里的 /public ≠ 集群 /public,所以找不到你的 share/home;
  • 最快解决:重建容器,勾选"挂载集群 /public"
  • 临时用:先登 login 节点,直接在 login 里操作 /public/share/acz6ty4okx。

要不要我一步步带你在网页控制台里重建容器并勾选正确的挂载选项

相关推荐
开发者联盟league14 小时前
使用k8s安装Sonarqube
云原生·容器·kubernetes
m0_7381207216 小时前
渗透测试基础——基于Docker的Rsync服务靶场搭建与原理讲解
运维·服务器·网络·安全·web安全·docker·容器
小义_17 小时前
【Ansible】(三)基础配置与连接设置
云原生·ansible
松岩18 小时前
网络问题导致 Pod Pending
kubernetes·aiops
极客先躯21 小时前
高级java每日一道面试题-2026年02月09日-实战篇[Docker]-Docker 容器有哪些安全风险?如何缓解?
java·运维·网络·安全·docker·容器
yuanzhengme21 小时前
Ollama【部署 07】搭建本地智能体的简单说明(局域网离线部署Ollama+模型迁移+Docker部署AnythingLLM)
运维·docker·容器·大模型·ollama·本地智能体
运维老郭1 天前
Kubernetes 二进制部署完全指南:从零搭建生产级HA集群
运维·云原生·kubernetes
成为你的宁宁1 天前
【K8S黑盒监控实践:Probe配置、Prometheus验证与Grafana可视化】
kubernetes·grafana·prometheus
成为你的宁宁1 天前
【Prometheus Operator监控K8S Nginx】
nginx·kubernetes·prometheus