Развертывание стека докеров не может развернуть службу на другом узле в кластере Swarm

Я пытаюсь развернуть приложение на нескольких экземплярах. На главном узле. после развернутого приложения работает единственный мастер-узел. не может развернуть сервисный другой узел в кластере Docker Swarm. вот мой файл для создания докеров

version: "3"

services:

  mydb:
    image: localhost:5000/mydb-1
    environment:
      TZ: "Asia/Colombo"
    ports:
      - 9042:9042
    volumes:
      - /root/data/cdb:/var/lib/cassandra
      - /root/logs/cdb:/var/log/cassandra

команда docker service scale mydb-1_mydb=5

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                                 NAMES
7fxxxxxxxx7        localhost:5000/mydb-1:latest   "docker-entrypoint.sh"   16 seconds ago      Up 5 seconds        7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp           mydb-1_mydb.2.q77i258vn2xynlgein9s7tdpb
34fcxxxx14bd        localhost:5000/mydb-1:latest   "docker-entrypoint.sh"   16 seconds ago      Up 4 seconds        7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp           mydb-1_mydb.1.s2mzitj8yzb0zo7spd3dmpo1j
9axxxx1efb        localhost:5000/mydb-1:latest   "docker-entrypoint.sh"   16 seconds ago      Up 8 seconds        7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp           mydb-1_mydb.3.zgyev3p4qdg7hf7h67oeedutr
f14xxxee59        localhost:5000/mydb-1:latest   "docker-entrypoint.sh"   16 seconds ago      Up 2 seconds        7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp           mydb-1_mydb.4.r0themodonzzr1izdbnppd5bi
e3xxx16d        localhost:5000/mydb-1:latest   "docker-entrypoint.sh"   16 seconds ago      Up 6  seconds        7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp           mydb-1_mydb.5.bdebi4

у всех работает только мастер-нода. Кто-нибудь знает проблему?


person Bala    schedule 28.01.2020    source источник
comment
Что docker node ls возвращается?   -  person samthegolden    schedule 28.01.2020
comment
да. отображение активного состояния всех узлов   -  person Bala    schedule 28.01.2020
comment
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION pcmabdsjxxxxxxxxxxxxxxxxd * beta-master Ready Active Leader 19.03.5 iptx66h4xxxxxxxxxxxxxz820 beta-node-1 Ready Active 19.03.5 kqylfxxxxxxxxxxxxxxxx3b11k beta-node-2 Ready Active 19.03.5 @samthegolden   -  person Bala    schedule 28.01.2020


Ответы (2)


Кажется, что ваше изображение построено локально с именем, которое не может быть разрешено в других узлах (localhost:5000/mydb-1). В swarm образы должны быть помещены в реестр, и этот реестр должен быть доступен для всех узлов. Вы можете запустить собственную службу реестра на своем собственном узле, есть образ докера, или вы можете нажмите на докер-хаб. Если реестр является частным, вам также необходимо выполнить docker login на узле, на котором выполняется развертывание стека, и включить учетные данные реестра в это развертывание, например

docker stack deploy -c compose.yml --with-registry-auth stack-name
person BMitch    schedule 28.01.2020
comment
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dbxxxx42f9 registry:2 "/entrypoint.sh /etc…" 20 hours ago Up 2 hours 5000/tcp registry.1.to4l4xj7kso44qr5dz8fj1fr5 на самом деле это изображение здесь мой локальный частный реестр root@beta-node-2:~# curl localhost:5000/v2/_catalog {"repositories":["mydb-1"]} мой узел - person Bala; 29.01.2020
comment
вход в систему и извлечение изображений из хаба помогли мне - person Max O.; 30.01.2021

Спасибо. Я нашел проблему и исправил.

volumes:
      - /root/data/cdb:/var/lib/cassandra
      - /root/logs/cdb:/var/log/cassandra

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

docker service scale zkr_zkr=2

после службы масштабирования, на которой запущен мой узел

root@beta-node-1:~# docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                                    NAMES
f9bxxx15861        localhost:5000/zookeeper:latest   "/docker-entrypoint.…"   40 minutes ago      Up 40 minutes       2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp   zkr_zkr.3.qpr8qp5y
01dxxxx64bc        localhost:5000/zookeeper:latest   "/docker-entrypoint.…"   40 minutes ago      Up 40 minutes       2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp   zkr_zkr.1.g2uee5j
person Bala    schedule 29.01.2020