Во время развертывания стека docker на рабочем узле не было создано оверлейной сети - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть 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

...