У меня есть два сервера для использования в Docker-кластере Swarm (только для тестирования), один - «Менеджер», а другой - «Рабочий», но при выполнении команды docker stack deploy --compose-file docker-compose.yml teste2
все службы запускаются в диспетчере, а работник не получает контейнеры для запуска, по какой-то причине Swarm не выполняет распределение служб в кластере и не запускает все на сервере управления.
Будет ли мой docker-compose.yml причиной проблемы или это может быть проблема с сетью?
Вот некоторые настройки:
- Серверы CentOs 7, Docker версия 18.09.4;
- Я выполнил команды
systemctl stop firewalld && systemctl disable firewalld
для отключения брандмауэра;
- Я выполнил команду
docker swarm join --token ...
на рабочем месте;
Результат docker node ls
:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
993dko0vu6vlxjc0pyecrjeh0 * name.server.manager Ready Active Leader 18.09.4
2fn36s94wjnu3nei75ymeuitr name.server.worker Ready Active 18.09.4
Файл docker-compose.yml:
version: "3"
services:
web:
image: testehello
deploy:
replicas: 5
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
# placement:
# constraints: [node.role == worker]
ports:
- 4000:80
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- 8080:8080
stop_grace_period: 1m30s
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
webnet:
Я выполнил команду docker stack deploy --compose-file docker-compose.yml teste2
В docker-compose.yml я прокомментировал параметры размещение и ограничения , потому что они не работали и не запускали контейнеры на серверах, без этого контейнеры запускались в менеджере. Через визуализатор все появляются в диспетчере.