Подготовка до аренды

Рабочий сценарий использует полную Vast VM с systemd, а не обычный Docker instance. VM содержит один узел k3s. Проверьте доступность VM-предложений, рабочий NVIDIA-драйвер, зарегистрированный SSH-ключ, цену и дисковое пространство.

На доверенной операторской машине нужны манифест выпуска и checkout с его точным sourceCommit. vast-up упаковывает инструменты именно из этого коммита. Приложение не получает ключ аккаунта Vast.

В конфигурации подготовьте VAST_TOKEN, SSH-ключ и параметры существующего relay. Для приватных образов задайте VAST_REGISTRY_CONFIG с отдельными pull-only правами и VAST_REGISTRY_READ_ONLY=1. Файл должен содержать только Docker auths, без credential helpers. Синтаксическая проверка не доказывает действительность прав — загрузку проверяет preflight.

Запуск и наблюдение

Для выпуска, чьи образы действительно доступны анонимно:

VAST_PUBLIC_IMAGES=1 RELEASE=/absolute/path/release.json \
  NAME=hse HOST=hse.example.edu make vast-up
NAME=hse make vast-status
NAME=hse SINCE=2h make vast-logs

Замените имя, домен и путь. VAST_PUBLIC_IMAGES=1 — явное утверждение о доступности образов, а не способ сделать приватные образы публичными. При смешанных registry оно относится к образам без переданных учётных данных.

Инструмент проверяет манифест до обращения к аккаунту, предлагает VM и требует подтверждения цены. Передаются только инструменты выпуска и разрешённая конфигурация. При обновлении удалённая конфигурация сохраняется: изменение каждого поля локального .env не обязано менять VM.

Критерий готовности GPU

HTTP-ответ приложения и вывод nvidia-smi недостаточны. Установщик проверяет RuntimeClass, allocatable GPU и исполняет реальную PyTorch CUDA-операцию в одноразовом non-root Pod. vast-up также запускает cluster smoke с независимыми комнатами.

Одна GPU-комната запрашивает одно устройство; автоматического sharing или перехода на общее ядро нет. Для GPU-проверки нужна свободная карта. Успешные локальные тесты репозитория не подтверждают работу конкретной аренды.

Проверенная конфигурация

9 сентября 2026 года проверили отдельную Vast VM с RTX 3090 (24 ГБ), Ubuntu 22.04, драйвером NVIDIA 580.95.05 и k3s v1.36.4+k3s1. На GPU-занятии два клиента получили результат матричного умножения на PyTorch 2.14.0 / CUDA 13.0 через общий ноутбук.

Также прошли проверку разделение комнат, сохранение GPU-тензора при перезапуске приложения и брокера, обновление и восстановление удалённого занятия из consistent-копии. Использовались NVIDIA Container Toolkit 1.20.0-1 и device plugin 0.19.3. Тестовая VM удалена после проверки.

Это результат для конкретной конфигурации. Другие GPU, внешние registry, публичный relay и ограничения доступа к службам узла требуют своей проверки. Обновление выпуска и восстановление копии останавливают ядра; сохранение Python-памяти при этих операциях не обещается.

Скопируйте данные с VM

# Во время работы: база и файлы не составляют атомарный снимок
NAME=hse MODE=live make vast-sync

# Остановить всех писателей и получить согласованную копию
NAME=hse MODE=consistent make vast-sync

# Явно разрешить возобновление после успешной копии
NAME=hse MODE=consistent RESUME=1 make vast-sync

Архивы сохраняются в backups/hse/ на операторской машине. Архив проверяется на VM и после передачи. Он содержит секреты, конфигурацию, release/catalog и workspace; образы остаются в registry.

Данные Colloq находятся на диске VM, и удаление аренды может их уничтожить. Не рассчитывайте на автоматическое сохранение local PV или возможность подключить отдельный Vast Volume к VM: проверяйте ограничения выбранного продукта у провайдера.

Восстановление и обновление

Команды make vast-… выполняются из полного исходного checkout на операторской машине. Для восстановления используйте процедуру portable restore с правильным именем и совместимым выпуском. После восстановления повторите prepare и проверки комнат. Обновление требует остановки ядер; версию k3s меняйте отдельной операцией.

Старые root-service/Compose установки и неуправляемые непустые данные не мигрируют автоматически. Сохраните старую машину, выгрузите её данные подходящими ей инструментами и проверьте перенос отдельно.

Перед удалением аренды

Получите согласованную копию вне VM, проверьте её и убедитесь, что нужные образы доступны. Только затем выполняйте NAME=hse make vast-down и подтверждайте удаление указанной аренды. Остановленный кластер не является резервной копией.

Для диагностики используйте длительности SINCE=30m или SINCE=2h. Логи уже удалённых room Pod могут быть недоступны; вывод приложений и ячеек может содержать учебные данные.