база данных высокой доступности (postgresql) с docker роем - PullRequest
1 голос
/ 14 февраля 2020

Я новичок в docker, и довольно часто учусь docker, потому что я работаю со стеком LAPP (Linux, Apache, PHP и Postre SQL) и всегда работаю с monolithi c архитектура, в которой все вещи объединены в один сервер / VPS.

после того, как я узнал о docker, мой разум немного изменился, и теперь я собираюсь попробовать, как контейнировать стек. Когда я вошел в БД, я подумал, что если я внедрил docker в режиме роя, БД может автоматически реплицироваться или синхронизироваться c в моем рабочем узле, когда я увеличу его масштаб, но на самом деле это не так. А вот мой файл .yml, который я использую для повторного создания сценария.

version: "3"
services:
  db:
    image: postgres:9.5
    container_name: db
    restart: always
    tty: true
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: mydocker_pass
      POSTGRES_USER: mydocker_user
      POSTGRES_DB: mydocker
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

В первый раз я просто создаю один контейнер внутри моего swarm-manager, но затем я масштабирую этот сервис с этим команда docker service scale db_stack_db=2 работает отлично, теперь в моем рабочем узле запущен новый контейнер. В моем узле worker у меня также есть тот же объем, который у меня уже есть в моем узле manager, но, к сожалению, когда я записываю что-то в db в узле manager, он не появляется в моем worker узел и наоборот, хотя они имеют одинаковое имя тома и предварительно созданную базу данных: mydocker, а также имеют одного и того же пользователя базы данных: mydocker_user и db_password mydocker_password, что означает, что экземпляр в узле worker не синхронизируется с manager узел.

тогда, если кто-то здесь сталкивался с подобным сценарием, пожалуйста, помогите мне и, пожалуйста, поделитесь своими мыслями со мной, какова лучшая практика с режимом роя? мне нужно только поставить один узел для БД, потому что, если я масштабирую БД и если он работает в узле worker, это полезно и помогает загрузке службы БД? поскольку между узлами manager и worker нет данных.

regards.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...