Привет. Есть swarm из двух нод - менеджерной и воркера. Создал overlay network по имени myinternal. Настроил докер для работы с GPU, тестовый образ nvidia/cuda:10.0-base
отрабатывает штатно, контейнер видит gpu. Хочу развернуть контейнер с gpu и присоединить его к своей network:
docker service create --with-registry-auth --generic-resource "gpu=1" --name=test --constraint=node.id==50pbc33tbompfiiu1n61khyc5 --network=myinternal busybox:latest sh -c "while true; do echo Hello; sleep 2; done"
Не получается, докер говорит сначала node is missing network attachments, ip addresses may be exhausted
, затем assigned node no longer meets constraints
, примерно так:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
yonzgcjx8793nxf2jbuvpdukq \_ test.1 busybox:latest@sha256:d366a4665ab44f0648d7a00ae3fae139d55e32f9712c67accd604bb55df9d05a node-4 Shutdown Rejected 19 seconds ago "assigned node no longer meets constraints"
3a3wrspme0m5ureu69dd9wpju \_ test.1 busybox:latest@sha256:d366a4665ab44f0648d7a00ae3fae139d55e32f9712c67accd604bb55df9d05a node-4 Shutdown Rejected 19 seconds ago "node is missing network attachments, ip addresses may be exhausted"
При этом если убрать или --network
или --generic-resource
, то все прекрасно работает (без сети или без гпу, соответственно).
Подробности сети:
docker network inspect e0fs28o8t7pq
[
{
"Name": "myinternal",
"Id": "e0fs28o8t7pqgc5p2jusa662g",
"Created": "2020-10-08T06:46:38.851827933Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.9.8.1/16",
"Gateway": "10.9.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": null,
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4096"
},
"Labels": null
}
]
Что я делаю не так? (про kube просьба не писать)