У меня есть Docker роевой кластер с оверлейной сетью (name overlay-test) с одним менеджером и 2 рабочими узлами. Один рабочий узел содержит только контейнер сервера базы данных. Когда я развертываю стек в кластере, а мой стек не содержит инструкций по развертыванию службы сервера БД на рабочем узле, у меня возникает проблема без создания сети на узле. Моя задача состоит в том, чтобы вручную подключить контейнер db-сервера к этой сети. Единственный способ решить эту проблему - сделать этот узел с сервером БД в качестве менеджера роя, но менеджер роя должен быть только другим хостом.
Есть какие-нибудь идеи по поводу других способов разрешения? Заранее спасибо.
Docker -составить для развертывания:
version: "3.5"
services:
test-front:
build: ./host-front/test-front
image: test-front:alpine-3
depends_on:
- test-back
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == front
test-back:
build: ./host-front/test-back
image: test-back:openjdk8-alpine
restart: always
networks:
- test-multihost
depends_on:
- test-db
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == front
test-adapter:
build: ./host-front/test-adapter
image: test-adapter:openjdk8-alpine
restart: always
networks:
- test-multihost
depends_on:
- test-core
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == front
test-core:
build: ./host-main/test-core
image: test-core:openjdk8-alpine
restart: always
depends_on:
- test-db
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == main
test-db:
build: ./host-main/test-db
image: test-db:openjdk8-alpine
restart: always
depends_on:
- test-postgres
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == main
test-postgres:
build: ./host-db/test-postgres
image: test-postgres:postgres-12.1-alpine
restart: always
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == db
networks:
test-multihost:
external: true
Я создал оверлейную сеть вручную: docker сеть создать -d оверлей --attachable test-multihost