跳转到主要内容
JupyterLab 开发环境用于在浏览器中进行 Notebook 交互式开发。您可以按需选择算力、镜像、Volume、数据集和模型,创建独立的云端开发环境,用于数据探索、Notebook 实验、代码调试和小规模验证。 JupyterLab 仅提供浏览器访问方式,不提供 SSH 登录。如需通过本地 VS Code、Cursor 或 SSH 连接云端环境,请使用 VSCS 开发环境。

创建 JupyterLab 开发环境

1. 进入创建页

  1. 进入 开发环境 > JupyterLab。
  2. 单击 新建。

2. 填写配置信息

基本信息

资源信息

提交时平台会校验资源配额和资源池可用量。如果提示配额不足,可减少规格数、更换规格或联系管理员扩容。

环境信息

高级配置

3. 提交创建

单击 新建 提交。开发环境会异步创建,您可以在列表中查看状态变化。 请求提交成功但列表未立即刷新时,先刷新或搜索开发环境名称,避免重复创建。开发环境进入运行中状态后,建议在详情中确认实际实例、资源池、镜像拉取、存储挂载和服务启动结果。

打开 JupyterLab

  1. 进入 开发环境 > JupyterLab。
  2. 在列表中找到目标开发环境。
  3. 确认开发环境处于运行中状态。
  4. 单击 打开。
  5. 进入 JupyterLab 后,确认默认目录、Volume、数据集或模型挂载路径符合预期。
进入 JupyterLab 后,可以新建 Notebook、脚本、终端或控制台。关闭浏览器只会断开访问,不会停止开发环境,也不会释放算力。 在浏览器中打开 JupyterLab 开发环境

保存文件、依赖与运行进度

文件、软件环境和程序运行状态需要分别保存。重建、停止、重调度或删除开发环境前,请先确认各类成果的保存方式。

保存文件和输出

需要长期保留的 Notebook、代码、依赖清单、输出结果和模型文件应保存到已挂载的 Volume。容器本地盘容量有限,写入大量数据可能导致负载被系统驱逐;开发环境重启、迁移或删除后,写入本地盘的数据可能无法恢复。 例如,将项目 Volume 挂载到 /mnt/workspace 后,可以按用途组织目录: 路径名称不决定是否持久,关键是它是否位于有效挂载内。输入数据和输出目录建议分开,避免改写共享数据源。

保存依赖为镜像

如果在开发环境中安装了系统依赖、工具链或 Python 包,并希望在新环境中复用,可以将运行中的开发环境保存为自定义镜像。
  1. 保持源开发环境处于运行中状态。
  2. 检查容器可写层中没有不应共享的凭据、密钥、临时数据或敏感文件。
  3. 在开发环境操作中单击 保存镜像,填写镜像信息并提交。
  4. 保存期间保持源开发环境运行,避免停止、删除、重调度或继续大量修改依赖。
  5. 到自定义镜像构建记录确认保存成功,再用新镜像创建开发环境,验证关键依赖是否可用。
已有构建任务、容器大小等条件可能限制保存镜像。保存失败时,查看自定义镜像构建日志定位原因。长期维护的环境仍建议保留 Dockerfile、依赖清单或安装脚本;保存镜像不包含挂载的 Volume、进程内存或运行状态,仅存在于挂载卷中的依赖需要重新挂载该卷或按依赖清单安装。完整的构建记录、日志和镜像复用方式请参见 构建和管理自定义镜像。

保存运行进度

Notebook 文件只保存代码、Markdown 和已保存的输出内容,不保存完整 Python 进程、GPU 状态或训练进度。长时间实验需要在程序中保存 checkpoint,并在重启后从 checkpoint 恢复。 关闭浏览器只会断开访问,不会自动停止开发环境;但原地重启、重调度、停止、自动缩容或删除会中断 Notebook、脚本和终端进程。执行这些操作前,请先保存文件和运行进度。

查看和管理开发环境

查看状态和资源

在 开发环境 > JupyterLab 列表或详情页查看开发环境状态、资源规格、实际实例、资源池、运行时长和事件,用于判断开发环境是否就绪、资源是否够用或是否长期闲置。 如果开发环境未进入运行中状态,先查看状态详情和事件,再根据提示检查资源配额、镜像组件、卷挂载路径、启动命令或环境变量。
在详情页的存储信息中,可以查看 Pod 临时存储使用情况。临时存储适合少量可丢弃的运行时文件;Notebook、依赖缓存、Checkpoint、输出结果或模型文件等需要保留的数据,应写入已挂载的 Volume。详情请参见 临时存储使用最佳实践。

管理生命周期

创建后,您可以在列表或详情页对 JupyterLab 开发环境执行生命周期管理操作。

选择启动或重启方式

需要重新使用或重启开发环境时,先按当前状态和目标选择操作。

其他操作

  • 停止:关闭运行中的开发环境并释放算力。开发环境配置和已写入 Volume 的数据会保留。
  • 更新:修改镜像、资源规格、Volume 挂载、数据集或模型挂载、启动命令、环境变量等配置。资源、镜像或挂载变更可能影响运行,部分变更需要重启后才能生效。
  • 克隆:基于当前配置创建新的开发环境。克隆不会复制完整磁盘、进程内存或未持久化的数据。
  • 保存镜像:将运行中的开发环境保存为自定义镜像,便于后续复用已安装的依赖和工具。保存期间开发环境可能暂时不可用,建议在无交互操作时执行。
  • 调整可见性:将开发环境设置为私有或项目组内公开。调整可见性不影响运行状态。
  • 删除:移除开发环境记录并释放占用资源。删除为不可逆操作,删除前请确认需要保留的数据已保存到 Volume。
排队或状态转换中,部分操作可能不可用。操作失败或长时间未完成时,先查看状态详情和事件,不要反复提交同一操作。

配置定时开关和自动缩容

JupyterLab 开发环境长时间运行会持续占用算力。您可以按使用习惯配置定时开关或自动缩容,减少闲置资源占用。如果需要运行长时间实验,建议先确认当前是否启用了相关策略,并提前保存文件和进度。

配置定时开关

进入 开发环境 > JupyterLab,在目标开发环境的 更多 操作中选择 定时开关。 定时开关用于按周期性时间规则自动启动或停止开发环境,适合固定工作时间的开发场景。面板使用六段 cron:秒、分、时、天、月、周,时区为 UTC。 跨午夜时,需要同时调整日期或星期。开发环境内的时区设置不改变 定时开关 面板的 UTC 要求。提交后可通过事件验证计划是否按预期执行;定时启动仍需等待资源调度完成。

配置自动缩容

进入 开发环境 > JupyterLab,在目标开发环境的 更多 操作中选择 自动缩容。 自动缩容用于按 GPU 利用率和观察窗口判断是否停止开发环境,当前不支持纯 CPU 开发环境。自动缩容触发后不会自动重新启动开发环境;需要继续使用时,请手动启动,或配合定时开关计划启动。 设置窗口和阈值时,需要考虑数据加载、CPU 预处理和正常调试等待。这些阶段 GPU 可能空闲,但程序仍在工作。当前控制流程在无监控样本时也可能缩到 0;启用前请保存文件和进度,并明确后续恢复方式。

使用 JupyterLab 调试分布式任务

如果需要在 Notebook 环境中临时验证分布式训练脚本,可以创建多个 JupyterLab 开发环境,并在各环境终端中使用同一主节点地址和端口运行 torchrun。主节点地址可在主节点环境中通过 echo $POD_IP 获取。
各节点的 --master_addr、--master_port、--nnodes 和 --nproc_per_node 需要保持一致,--node_rank 按节点顺序分别设置。正式的大规模训练、需要队列调度或需要更稳定容错能力时,建议使用训练任务。

常见问题

查看状态详情和事件,确认所选资源规格、用户剩余配额和资源池可用量是否满足要求。配额不足时,可减少规格数、更换规格或联系管理员扩容。
确认开发环境处于运行中状态,并检查镜像是否包含 bash 和 JupyterLab 相关组件。再查看启动命令、环境变量和挂载路径,确认初始化命令已经正常退出,且没有持续运行的服务或等待人工输入的命令阻塞启动。
确认挂载对象与 Pod 中挂载路径已成对配置,挂载路径没有覆盖系统目录,也没有与其他挂载路径冲突。如果挂载目录无法写入,请检查目录授权、读写权限、容量和限额。
确认 Notebook 使用的 Kernel 与安装依赖时使用的解释器一致。如果依赖安装在容器本地路径,重启、迁移或创建新环境后可能需要重新安装;建议将稳定依赖固化到镜像,或保留依赖清单。
先确认文件和配置是否写入 Volume。Notebook 文件、代码、插件配置、依赖缓存和输出结果需要分别持久化;保存镜像不等于备份挂载的 Volume 或进程状态。
提供开发环境类型和 ID、区域和集群、发生时间、状态详情、镜像信息以及脱敏后的错误信息。不要发送私钥、访问密钥或带认证信息的完整链接。

相关文档