Пошаговое руководство по развертыванию BeeCR в Docker
В данном руководстве вы познакомитесь с процессом развертывания BeeCR в вашей собственной инфраструктуре с помощью Docker.
📄 Требования
Для развертывания решения на сервере требуется:
- Сервер на основе Linux (желательно Ubuntu или Debian).
- Графический ускоритель NVidia (минимум 24 ГБ памяти, рекомендуется 40 ГБ).
- Драйвер NVidia.
Вы можете убедиться, что драйвер присутствует и работает, выполнив команду типаnvidia-smi
(команда должна перечислить доступные GPU). - Docker, а также Docker Compose.
- NVIDIA Container Toolkit
1️⃣ Подготовьте конфигурацию Docker Compose
Скачайте конфигурационный файл Docker Compose в удобное место:
2️⃣ Подготовьте файл лицензии
Предполагается, что у вас уже есть лицензионный файл, выданный нашей командой. Пожалуйста, свяжитесь с нами, чтобы получить/купить лицензию для BeeCR, если у вас ее еще нет.
После получения файла лицензии поместите его в ту же директорию, где вы сохранили compose.yml
на предыдущем шаге.
3️⃣ Загрузите Docker-образы (опционально)
Если целевой сервер имеет подключение к Интернету, то вы можете пропустить этот шаг, потому что Docker автоматически загрузит образы. В противном случае вам может потребоваться предварительно загрузить и сохранить образы на компьютере с подключением к Интернету, передать их на целевой сервер.
Скачайте последние доступные Docker-образы из Интернета и экспортируйте их в tar
архивы:
docker pull "cr.yandex/crpnppdjigsa1876k1eq/beecr/ai"
docker pull "cr.yandex/crpnppdjigsa1876k1eq/beecr/api"
docker save "cr.yandex/crpnppdjigsa1876k1eq/beecr/ai" -o "beecr-ai.tar"
docker save "cr.yandex/crpnppdjigsa1876k1eq/beecr/api" -o "beecr-api.tar"
Передайте tar
архивы образов на целевой сервер с помощью удобного метода, например, команды scp
:
На целевом сервере загрузите Docker-образы из tar
архивов:
4️⃣ Измените конфигурацию Docker Compose (опционально)
Установленные по умолчанию параметры в предоставленном compose.yml
удовлетворяют потребности большинства пользователей.
Однако вы можете захотеть настроить некоторые параметры.
Например, по умолчанию предоставленная конфигурация Docker Compose открывает API на порте 8000
.
Если вы хотите использовать другой порт, внесите изменения в соответствующий раздел compose.yml
.
Еще один пример параметра, который можете захотеть изменить, это путь к файлу лицензии.
Как упоминалось выше, ожидаемое местоположение этого файла - это директория, содержащая compose.yml
.
Однако, если вы хотите сохранить его в другом месте, просто измените ./beecr.lic
на соответствующий путь в вашей файловой системе или в Docker-томе.
Ссылки:
- Если вам нужна дополнительная информация о предоставленной конфигурации Docker Compose, обратитесь к соответсующей документации.
- Если вы не знакомы с Docker Compose, рекомендуется прочитать документацию "Getting Started" к данному инструменту.
- Вам также может быть актуальный следующие разделы документации Docker: Volumes, Bind Mounts.
5️⃣ Запустите контейнеры
Выполните следующую команду в директории, содержащей compose.yml
, чтобы запустить API и AI контейнеры в фоновом режиме:
6️⃣ Проверьте логи
После запуска контейнеров рекомендуется проверить логи, чтобы убедиться, что все работает корректно.
Проверьте логи контейнера с API сервером BeeCR:
Вывод должен быть похож на следующий:
...
{"loglevel": "info", "workers": 4, "bind": "0.0.0.0:80", "graceful_timeout": 120, "timeout": 3600, "keepalive": 5, "errorlog": "-", "accesslog": "-", "workers_per_core": 1.0, "use_max_workers": 4, "host": "0.0.0.0", "port": "80"}
🟢 License check passed. License info: GPU based license.
INFO [BeeCR] Starting gunicorn 20.1.0
INFO [BeeCR] Listening at: http://0.0.0.0:80 (1)
INFO [BeeCR] Using worker: app.gunicorn_conf.MyUvicornWorker
INFO [BeeCR] Booting worker with pid: 10
INFO [BeeCR] Booting worker with pid: 12
...
Обратите внимание на логи, связанные с проверкой лицензии. Если все работает правильно, вы должны увидеть сообщение 🟢 License check passed
с дополнительными деталями о лицензии.
Также проверьте логи контейнера, обслуживающего ИИ модель:
Присутствие модели GPU в логах - хороший знак, указывающий на то, что ИИ сервер использует видеокарту.
...
time=2024-06-06T15:49:27.338Z level=INFO source=types.go:98 msg="inference compute" id=GPU-96b9ff66-b2f6-e4c5-123a-eac0416a2789 library=cuda compute=8.9 driver=12.2 name="NVIDIA GeForce RTX 4090" total="23.6 GiB" available="23.3 GiB"
...
7️⃣ Проверьте работу API сервера
Наконец, давайте убедимся, что сервер API отвечает, отправив GET HTTP-запрос к конечной точке /version
.
⚠️ Примечание: Рекомендуется выполнить этот запрос извне сервера, чтобы подтвердить, что ваш брандмауэр (если настроен) разрешает входящие запросы.
Используйте следующую команду для отправки запроса:
Замените SERVER
на адрес вашего целевого сервера.
Если все работает правильно, вы должны получить текстовый ответ с версией API сервера, например:
👍 Заключение
Из данного материла вы узнали, как развернуть BeeCR на собственных серверах с помощью Docker. Следуя шагам изложенным в данном руководстве, вы настроили необходимую среду, получили необходимую лицензию, загрузили Docker-образы, настроили параметры Docker Compose и запустили контейнеры. Проверка логов позволяет убедиться минимальным образом, что серверы работают как ожидается. Если у вас возникнут проблемы или возникнут дополнительные вопросы, обращайтесь в нашу поддержку.