Подключение к общему ресурсу Docker Swarm
Запрос помощи Docker: я пытаюсь подключить контейнер в нашем Swarm к устройству в /dev
, Соединение работает корректно через сопоставление устройств при работе в док-контейнере, однако мы не можем подключиться к устройству в нашем узле Swarm.
Устройство является графическим оборудованием для использования драйверов vaapi с нашим конвейером Gstreamer и находится здесь: /dev/dri/renderD128
, но это общий вопрос для подключения к любому устройству из контейнера в рое.
Я ищу совет о том, как это будет отображаться на нашем устройстве через общие ресурсы Swarmkit.
Существует обсуждение, касающееся Swarmkit и графического оборудования, включая:
- (Проблема) Добавить поддержку общих ресурсов Swarmkit # 33439: https://github.com/moby/moby/issues/33439
- (Объединенный PR) Добавьте общие ресурсы # 5416: https://github.com/docker/docker.github.io/pull/5416
Но я не смог отогнать их в решение.
Одна команда запуска docker, которая успешно подключается к этому устройству, когда НЕ работает в рое, выглядит следующим образом:
docker run -ti \
-e XDG_RUNTIME_DIR=/tmp \
--device=/dev/dri/card0:/dev/dri/card0 \
--device=/dev/dri/renderD128:/dev/dri/renderD128 \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
<docker-image> bash
Но опять же, это общий вопрос для контейнеров, скоплений и отображения устройств в целом, и он не связан с этим конкретным устройством.
Мы используем docker compose file version 3, и попробовали "device
"опция, которая не работает должным образом: https://docs.docker.com/compose/compose-file/
"Эта опция игнорируется при развертывании стека в режиме роя с файлом (версия 3) Compose".
Я благодарен за вашу помощь.
1 ответ
Вы видели https://github.com/NVIDIA/nvidia-docker/issues/141?
с 17.12.0-ce вы можете настроить демон docker так, чтобы ваш GPU подвергался рою.
Использование 'docker service' теперь поддерживает это, однако, насколько я могу судить, в docker-compose нет эквивалента --generic-resource.
РЕДАКТИРОВАТЬ: на самом деле есть поддержка в композит 3.5:
generic_resources:
- discrete_resource_spec:
 kind: 'gpu'
 value: 2
[ https://github.com/docker/cli/commit/1ff73f867df382cb5a19df4579da3570f4daaff5 ]