Docker Swarm, задачи сервиса не развернуты на новом созданном рабочем узле Swarm - PullRequest
0 голосов
/ 29 июня 2018

Уже есть два узла роя: myvm1 и myvm2.

Вот мой сервис и задачи, они уже развернуты на узлах myvm1 и myvm2.

☁  docker-research [master] ⚡  docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                        PORTS
pwjxzu80q1vx        getstartedlab_web   replicated          5/5                 novaline/get-started:part2   *:4000->80/tcp
☁  docker-research [master] ⚡  docker service ps getstartedlab_web
ID                  NAME                  IMAGE                        NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
32c88logpvar        getstartedlab_web.1   novaline/get-started:part2   myvm2               Running             Running 3 hours ago
3lpx3gotggi8        getstartedlab_web.2   novaline/get-started:part2   myvm1               Running             Running 3 hours ago
meuwm1dhxeba        getstartedlab_web.3   novaline/get-started:part2   myvm2               Running             Running 3 hours ago
jrxs9xbjxz56        getstartedlab_web.4   novaline/get-started:part2   myvm1               Running             Running 33 minutes ago
oocrasndz98s        getstartedlab_web.5   novaline/get-started:part2   myvm1               Running             Running 33 minutes ago

Теперь я хочу добавить новый рабочий узел роя - myvm3

Вот мои шаги:

создать новую виртуальную машину - myvm3:

docker-machine create -d virtualbox myvm3

добавить myvm3 для роения в качестве рабочего узла:

☁  docker-research [master] ⚡  docker-machine ssh myvm3 'docker swarm join --token SWMTKN-1-002x9ve85tv0jpodgd0y1244itb2knyr3b6j4qn6qiepl7yjx7-4p08k808lz9eqtqu1szdki3md 192.168.99.100:2377'
This node joined a swarm as a worker.

проверка узлов роя:

☁  docker-research [master] ⚡  docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
qciplvmrh6j758hs8mi8jyqdz *   myvm1               Ready               Active              Leader              18.05.0-ce
5xxrbayq0n0068awdctneyifg     myvm2               Ready               Active                                  18.05.0-ce
gfuc93zs1k45evlhlxqfd2qo9     myvm3               Ready               Active                                  18.05.0-ce

развернуть снова:

☁  docker-research [master] ⚡  docker stack deploy getstartedlab -c ./get-started-v2/docker-compose.yml
Updating service getstartedlab_web (id: pwjxzu80q1vxejc3d3hzoc89l)

Теперь, я думаю, задачи сервиса будут развернуты на трех узлах - myvm1, myvm2 и myvm3. Но когда я снова проверяю состояние задач, они все еще развертываются в узлах myvm1 и myvm2.

☁  docker-research [master] ⚡  docker service ps getstartedlab_web
ID                  NAME                  IMAGE                        NODE                DESIRED STATE       CURRENT STATE               ERROR               PORTS
32c88logpvar        getstartedlab_web.1   novaline/get-started:part2   myvm2               Running             Running 4 hours ago
3lpx3gotggi8        getstartedlab_web.2   novaline/get-started:part2   myvm1               Running             Running 4 hours ago
meuwm1dhxeba        getstartedlab_web.3   novaline/get-started:part2   myvm2               Running             Running 4 hours ago
jrxs9xbjxz56        getstartedlab_web.4   novaline/get-started:part2   myvm1               Running             Running about an hour ago
oocrasndz98s        getstartedlab_web.5   novaline/get-started:part2   myvm1               Running             Running about an hour ago

Что я могу сделать, если я хочу, чтобы служба была развернута на всех узлах?

1 Ответ

0 голосов
/ 05 июля 2018

Вам необходимо развернуть сервисы в глобальном режиме, как только появится новый узел, планировщик размещает задачу на всех доступных узлах. Режим добавления: глобальный для тега deploy в вашем файле compose, как показано ниже (выделено жирным шрифтом). Следует создать задачи на всех доступных узлах. Надеюсь, это поможет.

услуги: Колба-приложение: изображение: 127.0.0.1:5003/flask-app:latest построить: зависит от: - фляга-mysql команда: python3 /opt/app.py порты: - «5001: 5000» сети: - наложение Deploy: режим: глобальный

...