• Русский
  • Создание Workbench

    Предварительные требования

    • Убедитесь, что kubectl настроен и подключен к вашему кластеру.
    • Убедитесь, что вы создали PVC.
    CreatePVC
    1. Войдите в систему и перейдите на страницу Alauda Container Platform.
    2. Нажмите Storage > PersistentVolumeClaims, чтобы открыть страницу списка PVC.
    3. Найдите кнопку Create PVC, нажмите Create и введите информацию.

    Создание Workbench через веб-консоль

    Порядок действий

    Войдите в систему и перейдите на страницу Alauda AI.

    Нажмите Workbench, чтобы открыть страницу списка Workbench.

    Найдите кнопку Create, нажмите Create — откроется форма создания, и после заполнения информации вы сможете создать workbench.

    Подключение к Workbench

    После создания экземпляра workbench нажмите Workbench в левой панели навигации; ваш экземпляр workbench должен отображаться в списке. Когда статус станет Running, нажмите кнопку Connect, чтобы войти в workbench.

    Загрузка файлов в JupyterLab

    Если вы используете workbench на базе JupyterLab, вы можете загрузить файлы с локального компьютера с помощью кнопки Upload Files в браузере файлов. Это полезно, когда ваш workbench не может получить доступ к общедоступному интернету или зеркалу PyPI, и вам нужно установить Python-пакеты из локальных файлов wheel.

    Установка файла Python Wheel в автономном режиме

    1. Подключитесь к workbench и откройте JupyterLab.

    2. В левом браузере файлов нажмите кнопку Upload Files и выберите один или несколько файлов .whl на локальном компьютере.

    3. Откройте терминал в JupyterLab и перейдите в каталог, содержащий загруженные файлы.

    4. Установите пакет:

      pip install ./your_package-1.0.0-py3-none-any.whl

    Если пакет зависит от других файлов wheel, загрузите все необходимые файлы .whl в тот же каталог и установите их без обращения к внешнему индексу пакетов:

    pip install --no-index --find-links . your-package
    INFO

    Пакеты, установленные напрямую в контейнер, подходят для временного или личного использования. Если вы пересоздадите workbench, пакеты, установленные только внутри контейнера, могут быть потеряны. Для воспроизводимых сред лучше использовать собственный образ workbench или виртуальную среду, размещенную на постоянном хранилище.

    Доступные образы Workbench

    Платформа предоставляет набор готовых к использованию образов WorkspaceKind, которые отображаются непосредственно в форме создания workbench. Дополнительные образы также публикуются в Docker Hub, но по умолчанию не синхронизируются в платформу.

    Следующие таблицы используют тот же общий стиль, что и документация Red Hat OpenShift AI: каждый образ описывается с точки зрения его назначения, а ключевые предустановленные пакеты приводятся для быстрого ознакомления. Списки пакетов являются репрезентативными, а не исчерпывающими. Версии взяты из соответствующих каталогов образов в репозитории сборки и их lock-файлов.

    Встроенные образы

    Следующие образы доступны из коробки:

    Многоархитектурные образы (x86_64 и arm64)

    Имя образаОписаниеОсновные пакеты
    Minimal Python
    alauda-workbench-jupyter-minimal-cpu-py312-ubi9
    Используйте этот образ, если вам нужен легковесный Jupyter workbench и вы планируете самостоятельно устанавливать пакеты, специфичные для проекта.Python 3.12
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    JupyterLab Git 0.52.0
    nbdime 4.0.4
    nbgitpuller 1.2.2
    Standard Data Science
    alauda-workbench-jupyter-datascience-cpu-py312-ubi9
    Используйте этот образ для общих задач data science, для которых не требуется GPU-образ, специфичный для framework.Python 3.12
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    NumPy 2.4.3
    pandas 2.3.3
    SciPy 1.16.3
    scikit-learn 1.8.0
    Matplotlib 3.10.8
    Plotly 6.5.2
    KFP 2.15.2
    Kubeflow Training 1.9.3
    Feast 0.60.0
    CodeFlare SDK 0.35.0
    ODH Elyra 4.3.2
    code-server
    alauda-workbench-codeserver-datascience-cpu-py312-ubi9
    Используйте этот образ, если вы предпочитаете IDE, похожую на VS Code, для разработки в области data science. В этом образе недоступны pipeline на основе Elyra.Python 3.12
    code-server 4.106.3
    Python extension 2026.0.0
    Jupyter extension 2025.9.1
    ipykernel 7.2.0
    debugpy 1.8.20
    NumPy 2.4.3
    pandas 2.3.3
    scikit-learn 1.8.0
    SciPy 1.16.3
    KFP 2.15.2
    Feast 0.60.0
    virtualenv 21.1.0
    ripgrep 15.0.0

    Дополнительные образы

    Следующие образы доступны в Docker Hub, но по умолчанию не встроены в платформу:

    Образы x86_64

    Эти образы предназначены для узлов x86_64 с поддержкой NVIDIA GPU.

    Имя образаОписаниеОсновные пакеты
    TensorFlow
    alaudadockerhub/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9
    Используйте этот образ для разработки и обучения моделей TensorFlow на NVIDIA GPUs.Python 3.12
    CUDA base image 12.9
    TensorFlow 2.20.0+redhat
    TensorBoard 2.20.0
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    NumPy 2.4.3
    pandas 2.3.3
    PyTorch LLM Compressor
    alaudadockerhub/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9
    Используйте этот образ для сжатия и оптимизации LLM на основе PyTorch на NVIDIA GPUs.Python 3.12
    CUDA base image 12.9
    PyTorch 2.9.1
    torchvision 0.24.1
    TensorBoard 2.20.0
    llmcompressor 0.9.0.2
    transformers 4.57.3
    datasets 4.4.1
    accelerate 1.12.0
    compressed-tensors 0.13.0
    nvidia-ml-py 13.590.44
    lm-eval 0.4.11
    PyTorch
    alaudadockerhub/odh-workbench-jupyter-pytorch-cuda-py312-ubi9
    Используйте этот образ для разработки и обучения моделей PyTorch на NVIDIA GPUs.Python 3.12
    CUDA base image 12.9
    PyTorch 2.9.1
    torchvision 0.24.1
    TensorBoard 2.20.0
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    onnxscript 0.6.2
    CUDA Minimal Python
    alaudadockerhub/odh-workbench-jupyter-minimal-cuda-py312-ubi9
    Используйте этот образ, если вам нужен легковесный базовый Jupyter-образ с поддержкой NVIDIA CUDA.Python 3.12
    CUDA base image 13.0
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    JupyterLab Git 0.52.0
    nbdime 4.0.4
    nbgitpuller 1.2.2

    Образы arm64

    Эти образы предназначены для узлов arm64 с поддержкой Ascend NPU.

    Имя образаОписаниеОсновные пакеты
    CANN Minimal Python
    alauda-workbench-jupyter-minimal-cann-py312-ubi9
    Используйте этот образ, если вам нужен легковесный базовый Jupyter-образ с поддержкой Ascend CANN.Python 3.12
    CANN 8.5.0
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    JupyterLab Git 0.51.4
    nbdime 4.0.4
    nbgitpuller 1.2.2
    PyTorch CANN
    alauda-workbench-jupyter-pytorch-cann-py312-ubi9
    Используйте этот образ для разработки и обучения моделей PyTorch на Ascend NPU.Python 3.12
    CANN 8.5.0
    PyTorch 2.9.0
    torch_npu 2.9.0 (релиз Ascend 7.3.0)
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    TensorBoard 2.20.0
    Ray 2.54.0
    onnxscript 0.6.2
    NumPy 2.4.3
    pandas 2.3.3
    scikit-learn 1.8.0
    SciPy 1.16.3
    KFP 2.15.2
    Feast 0.60.0
    MindSpore CANN
    docker.io/alaudadockerhub/alauda-workbench-jupyter-mindspore-cann-py312-ubi9:v0 .1.7
    Используйте этот образ для разработки моделей MindSpore, преобразования checkpoints и обучения на Ascend NPU.Python 3.12
    CANN 8.5.0
    MindSpore 2.8.0
    JupyterLab 4.5.6
    Jupyter Server 2.17.0
    TensorBoard 2.20.0
    ODH Elyra 4.3.2
    onnxscript 0.6.2
    KFP 2.15.2
    Kubeflow Training 1.9.3
    pandas 2.3.3
    scikit-learn 1.8.0
    SciPy 1.16.3

    Чтобы использовать дополнительный образ, сначала синхронизируйте его в свой реестр образов. Это можно сделать с помощью такого инструмента, как skopeo, или с помощью скрипта, описанного в следующем разделе.

    Руководство по скрипту синхронизации образов Docker Hub

    sync-from-dockerhub.sh — это автоматизированный инструмент для синхронизации выбранных образов Docker Hub, особенно очень больших образов, в частный реестр образов, например Harbor. При прямой передаче больших образов из-за сетевых колебаний чаще возникают сбои Out-Of-Memory (OOM) или таймауты. Для повышения надежности скрипт использует промежуточный рабочий процесс: сначала выполняет pull локально → затем экспортирует в tar-архив → затем отправляет tar-архив в целевой реестр. Он также автоматически очищает временные файлы по завершении задачи или при неожиданном выходе.

    Предварительные требования к скрипту

    Перед запуском этого скрипта убедитесь, что на машине, где он будет выполняться, установлены и доступны следующие инструменты:

    • bash (среда выполнения)
    • nerdctl (для загрузки образов и экспорта слоев в tar-архивы)
    • skopeo (для отправки tar-архивов образов в целевой частный реестр)

    Настройка переменных окружения

    Скрипт выполняет синхронизацию, считывая переменные окружения, что обеспечивает гибкость использования без необходимости изменять код.

    Обязательные параметры (настройка целевого частного реестра)

    Переменная окруженияОписаниеПример значения
    TARGET_REGISTRYАдрес целевого частного реестра образовbuild-harbor.alauda.cn
    TARGET_PROJECTКонкретный проект/namespace в целевом реестре для хранения образовmlops/workbench-images
    TARGET_USERИмя пользователя для входа в целевой реестрadmin
    TARGET_PASSWORDПароль для входа в целевой реестрYourSecretPassword

    Необязательные параметры (настройка исходного DockerHub)

    Чтобы не сработал Rate Limit DockerHub при загрузке большого количества образов, вы можете указать свои учетные данные DockerHub для входа перед выполнением загрузки. Если это не требуется, оставьте эти поля пустыми.

    Переменная окруженияОписаниеПример значения
    DOCKERHUB_USERИмя пользователя учетной записи DockerHubyour_dockerhub_account
    DOCKERHUB_PASSWORDПароль DockerHub или Access Tokendckr_pat_xxxxxx...

    Пример 1: Базовое использование (наиболее распространенный сценарий)

    Если вам нужно только синхронизировать образы, определенные в скрипте, в ваш частный Harbor:

    # 1. Export environment variables for the target registry
    export TARGET_REGISTRY="build-harbor.alauda.cn"
    export TARGET_PROJECT="mlops/workbench-images"
    export TARGET_USER="admin"
    export TARGET_PASSWORD="YourHarborPassword"
    
    # 2. Grant execution permissions to the script (if not already done)
    chmod +x ./sync-from-dockerhub.sh
    
    # 3. Execute the synchronization
    ./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 (предотвращение Rate Limit)

    При частом извлечении образов с одной и той же машины 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).

    После того как образ станет доступен в вашем реестре, вам также нужно добавить соответствующую конфигурацию в поле imageConfig ресурса WorkspaceKind, который вы планируете использовать. Ниже приведен пример patch YAML, который добавляет новую конфигурацию образа в существующий WorkspaceKind:

    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, чтобы новый образ workbench стал доступен в пользовательском интерфейсе создания workbench.

    На практике вы можете адаптировать поля name, image и description в соответствии с образом, который вы синхронизировали, и соглашениями об именовании, используемыми в вашем кластере.

    INFO

    Мы также встроили некоторые опции ресурсов, которые можно увидеть в выпадающем меню.