创建工作台

前提条件

  • 确保已配置并连接到集群的 kubectl
  • 确保已创建 PVC
创建PVC
  1. 登录,进入 Alauda Container Platform 页面。
  2. 点击 Storage > PersistentVolumeClaims,进入 PVC 列表页面。
  3. 找到 Create PVC 按钮,点击 Create,填写信息。

通过 Web 控制台创建工作台

操作步骤

登录,进入 Alauda AI 页面。

点击 Workbench,进入 Workbench 列表页面。

找到 Create 按钮,点击 Create,进入创建表单,填写信息后即可创建工作台。

连接工作台

创建工作台实例后,点击左侧导航栏的 Workbench,您的工作台实例将显示在列表中。当状态变为 Running 时,点击 Connect 按钮进入工作台。

INFO

我们内置了可直接使用的 WorkspaceKind 资源,您可以在下拉菜单中看到我们提供的两个选项。

以下额外的工作台镜像可用,但默认不内置于平台中

如果想使用这些镜像,必须先手动同步到您自己的镜像仓库(例如使用 skopeo 等工具)。

DockerHub 镜像同步脚本指南

sync-from-dockerhub.sh 是一个自动化工具,用于将特定的 DockerHub 镜像(尤其是单层超过 7GB 的超大容量镜像)同步到私有镜像仓库(如 Harbor)。 由于大容量镜像在直接传输(通过管道或内存)时极易因网络波动导致 OOM 或超时失败,该脚本采用了 先拉取到本地 -> 导出为 tar 归档 -> 从 tar 归档推送到目标仓库 的中继策略,确保即使是几十 GB 的文件也能稳定同步。同时,脚本具备任务完成或异常时自动清理临时文件的机制,保护磁盘空间。

脚本前提条件

运行脚本前,请确保执行机器已安装并可访问以下工具:

  • bash(执行环境)
  • nerdctl(用于拉取镜像并导出层为 tar 归档)
  • skopeo(用于将 tar 镜像归档推送到目标私有仓库)

环境变量配置

脚本通过读取环境变量执行同步,使用灵活,无需修改代码。

必填参数(目标私有仓库配置)

环境变量说明示例值
TARGET_REGISTRY目标私有镜像仓库地址build-harbor.alauda.cn
TARGET_PROJECT目标仓库中存放镜像的项目/命名空间mlops/workbench-images
TARGET_USER目标仓库登录用户名admin
TARGET_PASSWORD目标仓库登录密码YourSecretPassword

可选参数(源 DockerHub 配置)

为避免拉取大量镜像时触发 DockerHub 的 Rate Limit,可提供 DockerHub 账号密码登录,若不需要则留空。

环境变量说明示例值
DOCKERHUB_USERDockerHub 账号用户名your_dockerhub_account
DOCKERHUB_PASSWORDDockerHub 密码或访问令牌dckr_pat_xxxxxx...

示例 1:基础用法(最常见)

仅需同步脚本中定义的镜像到私有 Harbor:

# 1. 导出目标仓库环境变量
export TARGET_REGISTRY="build-harbor.alauda.cn"
export TARGET_PROJECT="mlops/workbench-images"
export TARGET_USER="admin"
export TARGET_PASSWORD="YourHarborPassword"

# 2. 赋予脚本执行权限(如未赋予)
chmod +x ./sync-from-dockerhub.sh

# 3. 执行同步
./sync-from-dockerhub.sh

示例 2:单行命令执行(适合 CI 环境)

可在同一行声明环境变量并运行脚本,避免污染当前 Shell 环境变量:

TARGET_REGISTRY="build-harbor.alauda.cn" \
TARGET_PROJECT="mlops/workbench-images" \
TARGET_USER="admin" \
TARGET_PASSWORD="YourHarborPassword" \
./sync-from-dockerhub.sh

示例 3:完整执行含 DockerHub 认证(防止限流)

频繁从同一机器拉取镜像时,DockerHub 可能拒绝请求,此时需提供 DockerHub 账号密码:

export TARGET_REGISTRY="build-harbor.alauda.cn"
export TARGET_PROJECT="mlops/workbench-images"
export TARGET_USER="admin"
export TARGET_PASSWORD="YourHarborPassword"

export DOCKERHUB_USER="alaudadockerhub"
export DOCKERHUB_PASSWORD="dckr_pat_xxx_your_token_xxx"

./sync-from-dockerhub.sh

故障排查与注意事项

  1. 磁盘空间:脚本需临时存储超大镜像(如 13GB)为 tar 归档,请确保系统 /tmp 目录(或其所在根分区)有充足空闲空间(建议至少 30GB)。脚本默认暂存目录为 /tmp/workbench-images-export-from-hub
  2. 传输超时:脚本当前对推送大文件设置了 120 分钟超时(SKOPEO_TIMEOUT="120m"),若因网络极慢导致失败,可用文本编辑器修改脚本顶部该参数值。
  3. 修改镜像列表:若不想同步某些镜像,可打开 sync-from-dockerhub.sh,在 WORKBENCH_IMAGES 数组中用 # 注释对应行(类似 sync.sh 中对 minimal 镜像的过滤)。

镜像同步到仓库后,还需将对应配置添加到您计划使用的 WorkspaceKind 资源的 imageConfig 字段。以下示例为向已有 WorkspaceKind 添加新镜像配置的 Patch YAML:

add-llmcompressor-image-patch.json
[
  {
    "op": "add",
    "path": "/spec/podTemplate/options/imageConfig/values/-",
    "value": {
      "id": "jupyter-pytorch-llmcompressor-cuda-py312",
      "spawner": {
        "displayName": "Jupyter | PyTorch LLM Compressor | CUDA | Python 3.12",
        "description": "JupyterLab with PyTorch and LLM Compressor for CUDA",
        "labels": [
          {
            "key": "python_version",
            "value": "3.12"
          },
          {
            "key": "framework",
            "value": "pytorch"
          },
          {
            "key": "accelerator",
            "value": "cuda"
          }
        ]
      },
      "spec": {
        "image": "build-harbor.alauda.cn/mlops/workbench-images/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9:3.4_ea1-v1.41",
        "imagePullPolicy": "IfNotPresent",
        "ports": [
          {
            "id": "jupyterlab",
            "displayName": "JupyterLab",
            "port": 8888,
            "protocol": "HTTP"
          }
        ]
      }
    }
  }
]

您可以使用如下命令将该 Patch 应用到所用的 WorkspaceKind:

kubectl patch workspacekind jupyterlab-internal-3-4-ea1-v1-41 \
  --type=json \
  --patch-file add-llmcompressor-image-patch.json \
  -o yaml

该命令会将 JSON Patch 应用到指定 WorkspaceKind,更新其 imageConfig,使新工作台镜像在工作台创建界面可用。

实际使用时,可根据同步的镜像及集群命名规范调整 nameimagedescription 字段。

INFO

我们还内置了一些资源选项,您可以在下拉菜单中查看。