Перейти к содержанию

Добавление кластера графических процессоров с помощью Shuihua.

При создании кластера GPUStack может использовать SHUIHUA FUTURE для создания рабочих процессов и добавления их в кластер GPUStack.

Подготовка

Вам потребуется учетная запись SHUIHUA FUTURE и ключ API, созданный в консоли Shuihua. Ключ имеет префикс amp_live_.

шуйхуа-апи-ключ

При запуске сервера GPUStack необходимо указать параметр --server-external-url. Экземпляры Shuihua достигают сервера через этот адрес, чтобы зарегистрироваться и сохранить свой туннель открытым, поэтому он должен быть доступен для них. Если ваш сервер работает через прокси, установите здесь адрес прокси.

Создать кластер Шуйхуа.

Создать облачные учетные данные

Создайте облачные учетные данные SHUIHUA FUTURE на странице Cloud Credentials. API Key — единственное поле, которое необходимо заполнить.

создать-cloud-credential

Создание кластера с использованием облачных учетных данных.

На странице создания кластера выберите SHUIHUA FUTURE в качестве Cloud Provider:

выбрать-облачного-провайдера

Введите имя, выберите только что созданные облачные учетные данные и настройте GPUStack Server URL. В Шуйхуа нет регионов, поэтому выбирать регион не приходится.

Поле Default Container Registry здесь обязательно. Экземпляры Shuihua не могут подключиться к Docker Hub, поэтому образ воркера GPUStack должен загружаться из другого реестра. В поле предлагаются quay.io и swr.cn-south-1.myhuaweicloud.com; можно также ввести другой реестр, например собственный Harbor или зеркало. Значение, указывающее на хост Docker Hub, отклоняется.

базовая конфигурация

Примечание: --image-name-override сервера имеет приоритет над этим полем. Если сервер работает с переопределением, это имя образа используется дословно, а параметр реестра не имеет никакого эффекта, поэтому само переопределение должно указывать доступный реестр.

Нажмите Next, чтобы создать рабочий пул для кластера.

Создать пул рабочих

Заполните Name, Replicas и Batch Size по мере необходимости.

конфигурация-пула рабочих

Затем выберите Instance Type, что в терминах Шуйхуа является шаблоном спецификации. Для каждого варианта указана модель графического процессора, почасовая цена и остаток на складе; распроданный шаблон остается в списке, но его нельзя выбрать, поэтому вы можете понять, почему он недоступен.

выберите тип-экземпляра

Далее выберите OS Image.

Shuihua арендует только графические процессоры NVIDIA, а ее образы поставляются с уже установленными драйверами и набором инструментов для контейнеров. Таким образом, Cloud-init лишь указывает Docker на среду выполнения NVIDIA и запускает рабочий процесс — ничего не устанавливается и экземпляр не перезагружается, поэтому эти рабочие процессы запускаются быстрее, чем те, которым приходится собирать драйвер.

Тома не предлагаются для этого провайдера: у Shuihua нет API блочного хранилища. Метки поддерживаются.

Нажмите Save, если все настроено.

Ожидание предоставления рабочих

После сохранения кластера перейдите на страницу Workers, чтобы просмотреть ход подготовки работников Shuihua.

обеспечивающие рабочие

Процесс подготовки включает в себя несколько этапов:

  1. Создайте ключ SSH. У Shuihua нет API-интерфейса SSH-ключа, поэтому ключ не зарегистрирован у провайдера; Вместо этого он записывается в Cloud-init экземпляра.
  2. Создайте экземпляр. Создание асинхронное — Шуйхуа принимает запрос и сообщает creating, затем processing, затем active.
  3. Подождите, пока экземпляр запустится.
  4. Подождите, пока будет назначен его адрес.
  5. Рабочий переходит в статус Initialized и ждет, пока рабочий контейнер запустится и подключится к серверу.

Как только рабочий достигнет статуса Ready, на нем можно будет развернуть модели.

предоставленный работником

Подключение к работнику через SSH

Shuihua публикует каждый экземпляр за одним общим общедоступным IP-адресом, сопоставляя только порты 22 и 80 с портом, специфичным для экземпляра. IP-адрес, отображаемый для работника, — это собственный частный адрес экземпляра, который идентифицирует его, но к которому невозможно подключиться.

Вместо этого используйте View SSH Access в меню операций работника. Он показывает Host, Port и Connection Command, которые действительно достигают экземпляра, и позволяет загрузить Private Key (сохранённый как worker-<id>-private_key.pem).

worker-ssh-info

Поскольку собственный порт работника никогда не отображается, шлюз не может обеспечить входящий доступ к этим работникам. Они выполняют вывод через туннель WebSocket сервера, поэтому кластер Шуйхуа по умолчанию использует режим прокси-сервера tunnel. Оставьте все как есть, если только ваша сеть не направляет к экземплярам напрямую.

Безопасное сокращение числа работников Шуйхуа

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

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

Устранение неполадок

Работник остается в Initialized и никогда не становится Ready. Экземпляр загрузился, но рабочий контейнер не запустился, чаще всего потому, что не удалось вытащить образ. Подключитесь через SSH и проверьте:

1
2
3
sudo cloud-init status --long
sudo grep -iE "pull|denied|manifest" /var/log/cloud-init-output.log
docker ps -a

Воркер находится в состоянии Ready, но не обнаруживает GPU. Docker не использует среду выполнения NVIDIA:

1
2
3
nvidia-smi
which nvidia-ctk
docker info | grep -i runtime

Не удалось подготовить работника, и его нельзя повторить на месте. Удалите работника и позвольте пулу создать замену. Каждая попытка создания содержит ключ защиты от повторного воспроизведения, полученный из рабочей строки, поэтому для получения нового экземпляра требуется новый рабочий процесс.