跳转到正文

使用 WebTerminal

WebTerminal 会在目标 Worker Pod 的 main 容器中打开 /bin/sh。请用它检查正在运行的容器;长期使用的配置和依赖应写入镜像、准备脚本或运行脚本。

打开终端

  1. 在任务列表中选择目标任务,然后打开 Worker 标签。
  2. 找到目标 Worker,确认其行中已经显示对应 Pod 信息。
  3. 选择行末的 WebTerminal 图标。
  4. 等待终端依次显示连接和启动 shell 的信息,然后执行诊断命令。

与 Worker 对应的 Pod 信息同步到控制台后,WebTerminal 按钮才会启用。按钮启用不保证 Pod 正在运行;Pod 已退出、Agent 不可达或主容器没有 /bin/sh 时,连接仍可能失败。

安全检查容器

WebTerminal 直接进入训练使用的 main 容器。打开后先记录 Job、角色、Worker 和 Pod 名称,并优先执行不会改变文件、权限或进程状态的检查。

把示例中的占位路径替换为实际路径。以下命令可用于查看基本信息;具体命令是否存在取决于镜像:

sh
pwd
id
ls -ld /path/to/mount
ls -la /path/to/mount
df -h /path/to/mount
cat /proc/mounts
test -r /path/to/file && echo readable
test -w /path/to/mount && echo writable

test -w 只检查当前用户对路径的权限,不能确认对象存储、配额或后续写入一定成功。cat /proc/mounts 输出较长时,只查找目标路径;发送终端输出前请先删除无关信息和敏感内容。

默认不要执行以下操作:

  • rmmvchmodchowntouch、重定向或 tee
  • 安装软件、修改配置、终止进程、重启服务或卸载卷;
  • envprintenvset,或其他可能显示凭据的命令;
  • 为“验证写权限”而向检查点、结果或共享数据目录写测试文件。

如果必须修改容器,请先确认修改目标、影响、恢复方式和验收条件,并取得相应权限。配置修复应写入镜像、准备脚本或复制的 Job;终端中的临时修改可能随 Pod 重建而丢失。

检查挂载和输出路径

  • 目录为空时,先确认路径是否真的是 Job 配置中的容器挂载路径。
  • 镜像原有文件在挂载后不可见时,检查挂载点是否遮蔽了镜像中的同名目录。
  • 输出重建后丢失时,确认应用写入的是挂载路径内部,而不是默认工作目录或相邻目录。
  • 需要查看应用行为时,优先使用日志;终端用于补充检查文件系统和进程。

完整路径判断见存储排障

上传文件

上传界面不能选择目标路径。文件会以 ./<本地文件名> 写入 main 容器的默认工作目录,不会跟随交互 shell 中执行的 cd

先使用安全的文件名

上传文件会由容器中的 shell 写入,相对路径中的单引号无法安全处理。上传前,请把本地文件名改为只包含英文字母、数字、点、下划线和连字符,例如 config-v2.yaml,即符合 [A-Za-z0-9._-]+。文件名含空格、引号、斜杠、控制字符或其他 shell 特殊字符时,请改用其他传输方式。

上传会写入容器

上传会直接写入容器。默认工作目录中存在同名文件时,文件可能被覆盖,界面不会再次确认。请在上传前确认目标文件可以覆盖。

传输期间不要操作终端

文件传输和交互式 shell 共用同一 WebSocket。上传开始后,不要键入、粘贴或运行命令;等待界面明确显示传输完成后再继续,否则终端输入或输出可能混入文件内容。WebTerminal 传输只适合低风险的临时文件;完成后应在两端核对字节数,并在工具可用时核对哈希。完整性敏感的训练输入、检查点和结果应使用组织批准的对象存储或其他文件传输路径。

  1. 在 WebTerminal 顶部选择上传图标。
  2. 选择一个本地文件。
  3. 等待传输状态消失,并确认终端显示传输完成。
  4. 在容器中核对字节数,并在可用时核对哈希。

下载文件

传输期间不要操作终端

下载和交互式 shell 共用同一 WebSocket。下载开始后不要键入、粘贴或运行命令;终端输出也可能干扰传输。完整性敏感的文件应改用组织批准的传输路径;继续使用 WebTerminal 时,下载后必须核对字节数,并在工具可用时核对哈希。

  1. 选择下载图标。
  2. 输入 main 容器中的文件路径。
  3. 选择 Download 或按 Enter。
  4. 等待浏览器保存以源文件名命名的下载文件,然后核对字节数和可用的哈希。

长期保存修改

  • WebTerminal 弹窗没有独立 URL,关闭弹窗或离开页面会关闭连接。
  • 命令直接作用于运行中的容器,可能影响训练进程。
  • 容器文件系统中的临时修改可能在 Pod 重建、任务停止或删除后丢失。
  • 需要长期保留的程序或配置修复应写入镜像或脚本。需要跨 Pod 保留的数据应写入经过验证的对象存储;主机目录只适用于管理员确认会保留同一节点和目录的情况。
  • 上传或下载敏感文件前,先确认你对目标 Pod 和数据具有授权。

如果按钮一直禁用,请先在Worker 与 Pod页面确认 Pod 信息已经同步。