我在我的1个管理器上进行了以下设置 - 1个工作组安装。
ID HOSTNAME STATUS AVAILABILITY MANAGER
az8ptk865hkvbbva99gjv web1-dev Ready Active Leader
cohv346j0f4p3s8t9xnpi web2-dev Ready Active
version: '3'
services:
master:
image: redis:alpine
networks:
default:
aliases:
- redis
- redis-master
deploy:
placement:
constraints:
- node.role == manager
slave:
image: redis:alpine
command: redis-server --slaveof redis-master 6379 --slave-read-only no
networks:
default:
aliases:
- redis
- redis-slave
deploy:
placement:
constraints:
- node.role == worker
启动服务后
docker stack deploy -c redis.yml redis
,我开始使用Redis主从设置,我可以ping奴隶和对面的主容器。
如果我重新启动管理器节点,在worker中运行的Redis slave会丢失与swarm管理器节点中Redis主设备的连接,并且我无法从slave ping主节点。
使我的设置再次起作用的唯一方法是重新启动工作节点中的docker服务。
管理员节点重新启动后是否有其他方法可以使容器间通信工作而无需触及工作节点?