Bes*_*nna 11 docker docker-swarm docker-machine docker-swarm-mode docker-stack
我在设置一个有两个工人和一个经理的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/'
Run Code Online (Sandbox Code Playgroud)
我在Windows Server 2016上运行Docker CE 18.09.0(EE遇到了同样的问题)此外,我的所有工作节点都在Windows平台上,使用Linux容器.(我的经理节点是相同的,但由于问题#3031使用Windows容器)
是否在独有的Windows环境中设置了mutinode swarm?如何使用上面列出的环境设置此群集?
Windows 支持 Swarm,但您不应该在 Windows 服务器上使用 docker ce 和 linux 容器。Docker ce for windows 使用 hyperv Linux 虚拟机,而 win server 2016 在 hyperv 网络方面存在很多问题。
我还尝试在 swarm 中使用 docker ee 来运行 win server 2016,但由于多种限制,我放弃了这个想法,直到更新版本的 Windows 服务器出现。
您应该尝试高于 1803 的 Windows 服务器,微软最终允许向主机公开端口。因此我建议您使用 Windows Server Core 1803 或 1809,或使用 Windows Server 2019(即 1809)
并切换到windows上的windows容器。对于 Linux 容器,请使用 Linux 主机。将为您省去很多麻烦。
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |