重启群集管理器后,Redis的容器间通信失败

时间:2017-06-26 07:33:20

标签: docker docker-swarm

我在我的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服务。

管理员节点重新启动后是否有其他方法可以使容器间通信工作而无需触及工作节点?

0 个答案:

没有答案