Docker Swarm Mode Error: Joining Two Workers To One Manager
Docker Swarm Mode Error: Joining Two Workers To One Manager
我很难设置一个 Docker 有两个工人和一个经理的 Swarm。一切正常,直到我添加第二个工人。添加第二个 worker 后,第一个 worker 的守护进程进入某种错误状态,其中一个简单的 docker version
产生
此外,我正在使用 Stack 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 Windows 服务器 2016 上的 CE 18.09.0(EE 有同样的问题)此外,我所有的工作节点都在 Windows 平台,使用 Linux 个容器。 (我的管理器节点是一样的,但是因为 issue #3031 使用 Windows 个容器)
甚至在独有的 Windows 环境中也支持设置变异节点群吗?如何使用上面列出的环境来设置这个集群?
windows 支持 Swarm,但您不应在 windows 服务器上使用 docker ce 和 linux 容器。 Docker windows 的 ce 使用 hyperv linux 虚拟机和 win server 2016 在 hyperv 网络方面存在很多问题。
我也尝试在 swarm 中使用 docker ee 赢得服务器 2016,但由于多重限制,我放弃了这个想法,直到更新版本的 windows 服务器出现。
您应该尝试使用 1803 以上的 windows 服务器,Microsoft 最终允许向主机公开端口。因此,我建议您使用 windows 服务器核心 1803 或 1809,或使用 windows 服务器 2019(即 1809)
并切换到 windows 上的 windows 个容器。对于 linux 个容器,使用 linux 个主机。会让你省去很多麻烦。
我很难设置一个 Docker 有两个工人和一个经理的 Swarm。一切正常,直到我添加第二个工人。添加第二个 worker 后,第一个 worker 的守护进程进入某种错误状态,其中一个简单的 docker version
产生
此外,我正在使用 Stack 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 Windows 服务器 2016 上的 CE 18.09.0(EE 有同样的问题)此外,我所有的工作节点都在 Windows 平台,使用 Linux 个容器。 (我的管理器节点是一样的,但是因为 issue #3031 使用 Windows 个容器)
甚至在独有的 Windows 环境中也支持设置变异节点群吗?如何使用上面列出的环境来设置这个集群?
windows 支持 Swarm,但您不应在 windows 服务器上使用 docker ce 和 linux 容器。 Docker windows 的 ce 使用 hyperv linux 虚拟机和 win server 2016 在 hyperv 网络方面存在很多问题。
我也尝试在 swarm 中使用 docker ee 赢得服务器 2016,但由于多重限制,我放弃了这个想法,直到更新版本的 windows 服务器出现。
您应该尝试使用 1803 以上的 windows 服务器,Microsoft 最终允许向主机公开端口。因此,我建议您使用 windows 服务器核心 1803 或 1809,或使用 windows 服务器 2019(即 1809)
并切换到 windows 上的 windows 个容器。对于 linux 个容器,使用 linux 个主机。会让你省去很多麻烦。