Ошибка режима Docker Swarm: объединение двух рабочих в один менеджер - PullRequest
0 голосов
/ 04 декабря 2018

У меня проблемы с настройкой Docker Swarm с двумя работниками и одним менеджером.Все отлично работает, пока я не добавлю второй рабочий.После добавления второго работника демон первого работника входит в какое-то состояние ошибки, где простое docker version дает

enter image description here

Также я используюСтек YAML для запуска трех служб Redis.

Stack.yaml

version: '3.4'

services:
  redis-master:
    image: 'bitnami/redis:5.0.2'
    ports:
      - '6379:6379'
    environment:
      - REDIS_REPLICATION_MODE=master 
      - REDIS_PASSWORD=f7paul12-d571-4701-9c55-64vanacecDyK
    deploy:
      mode: global
      restart_policy:
        condition: any
    volumes: 
      - 'redis:/opt/bitnami/redis/etc/'

  redis-replica:
    image: 'bitnami/redis:5.0.2'
    ports:
      - '6379'
    depends_on:
      - redis-master
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis-master
      - REDIS_MASTER_PORT_NUMBER=6379
      - REDIS_MASTER_PASSWORD=f7paul12-d571-4701-9c55-64vanacecDyK
      - REDIS_PASSWORD=f7paul12-d571-4701-9c55-64vanacecDyK
    deploy:
      mode: replicated
      replicas: 6
      update_config:
        parallelism: 1
        delay: 20s
      restart_policy:
        condition: any

  redis-sentinel:
    image: 'bitnami/redis:5.0.2'
    ports:
      - '16379'
    depends_on:
      - redis-master
      - redis-replica
    entrypoint: |
      bash -c 'bash -s <<EOF
      "/bin/bash" -c "cat <<EOF > /opt/bitnami/redis/etc/sentinel.conf
      port 16379
      dir /tmp
      sentinel monitor master-node redis-master 6379 2
      sentinel down-after-milliseconds master-node 5000
      sentinel parallel-syncs master-node 1
      sentinel failover-timeout master-node 5000
      sentinel auth-pass master-node f7paul12-d571-4701-9c55-64vanacecDyK
      sentinel announce-ip redis-sentinel
      sentinel announce-port 16379
      EOF"     
      "/bin/bash" -c "redis-sentinel /opt/bitnami/redis/etc/sentinel.conf"    
      EOF'
    deploy:
      mode: global
      restart_policy:
        condition: any
volumes:
  redis:
    driver: external
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/c/redis/'

Я использую Docker CE 18.09.0 на Windows Server 2016 (EE имел то же самоепроблема) Кроме того, все мои рабочие узлы находятся на платформе Windows, используя контейнеры Linux.(Мой диспетчерский узел такой же, но использует контейнеры Windows из-за проблемы # 3031 )

Поддерживается ли настройка роя мутинов даже в эксклюзивных средах Windows?Как настроить этот кластер, используя среду, указанную выше?

1 Ответ

0 голосов
/ 22 марта 2019

Swarm поддерживается в Windows, но вы не должны использовать Docker CE и Linux-контейнеры на Windows-сервере.Docker ce для windows использует виртуальную машину HyperV Linux и Win Server 2016 имел много проблем с сетью HyperV.

Я также пробовал Win Server 2016 с Docker EE в Swarm, но из-за многочисленных ограничений я отказался от этой идеи, покаприходит более новая версия сервера Windows.

Вы должны попробовать любой сервер Windows с периодом выше 1803, где Microsoft наконец разрешила выставлять порты для хоста.Поэтому я бы порекомендовал вам использовать Windows Server Core 1803 или 1809 или Windows Server 2019 (который 1809)

И переключаться на контейнеры Windows на окнах.Для контейнеров Linux используйте хост Linux.Избавит вас от многих головных болей.

...