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

Пошаговое руководство по развертыванию BeeCR в Docker

В данном руководстве вы познакомитесь с процессом развертывания BeeCR в вашей собственной инфраструктуре с помощью Docker.

📄 Требования

Для развертывания решения на сервере требуется:

  1. Сервер на основе Linux (желательно Ubuntu или Debian).
  2. Графический ускоритель NVidia (минимум 24 ГБ памяти, рекомендуется 40 ГБ).
  3. Драйвер NVidia.
    Вы можете убедиться, что драйвер присутствует и работает, выполнив команду типа nvidia-smi (команда должна перечислить доступные GPU).
  4. Docker, а также Docker Compose.
  5. NVIDIA Container Toolkit

1️⃣ Подготовьте конфигурацию Docker Compose

Скачайте конфигурационный файл Docker Compose в удобное место:

curl -sLO 'https://docs.beecr.ru/on-premises/compose.yml'

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:

scp beecr*.tar USER@SERVER

На целевом сервере загрузите Docker-образы из tar архивов:

docker load -i "beecr-ai.tar"
docker load -i "beecr-api.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 контейнеры в фоновом режиме:

docker-compose up -d

6️⃣ Проверьте логи

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

Проверьте логи контейнера с API сервером BeeCR:

docker logs "beecr-api"

Вывод должен быть похож на следующий:

...
{"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 с дополнительными деталями о лицензии.

Также проверьте логи контейнера, обслуживающего ИИ модель:

docker logs "beecr-ai"

Присутствие модели 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.

⚠️ Примечание: Рекомендуется выполнить этот запрос извне сервера, чтобы подтвердить, что ваш брандмауэр (если настроен) разрешает входящие запросы.

Используйте следующую команду для отправки запроса:

curl 'http://SERVER:8000/version'

Замените SERVER на адрес вашего целевого сервера.

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

v1.27.1

👍 Заключение

Из данного материла вы узнали, как развернуть BeeCR на собственных серверах с помощью Docker. Следуя шагам изложенным в данном руководстве, вы настроили необходимую среду, получили необходимую лицензию, загрузили Docker-образы, настроили параметры Docker Compose и запустили контейнеры. Проверка логов позволяет убедиться минимальным образом, что серверы работают как ожидается. Если у вас возникнут проблемы или возникнут дополнительные вопросы, обращайтесь в нашу поддержку.