如何在docker swarm上设置zookeeper集群

前端之家收集整理的这篇文章主要介绍了如何在docker swarm上设置zookeeper集群前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

环境:6个服务器泊坞群集群(2个主人和4个工人)

要求:我们需要在现有的docker swarm上设置zookeeper集群.

阻止:要在群集中设置zookeeper,我们需要在每个服务器配置中提供所有zk服务器,并在myid文件中提供唯一ID.

问题:当我们在docker swarm中创建zookeeper的副本时,我们如何为每个副本提供唯一的ID.另外,我们如何使用每个zookeeper容器的ID更新zoo.cfg配置文件.

最佳答案
目前这不是一个简单的问题.当每个集群成员需要唯一标识和存储卷时,完全可扩展的有状态应用程序集群很棘手.

在Docker Swarm上,今天,最好建议您在撰写文件中将每个集群成员作为单独的服务运行(参见31z4/zookeeper-docker):

version: '2'
services:
    zoo1:
        image: 31z4/zookeeper
        restart: always
        ports:
            - 2181:2181
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo2:
        image: 31z4/zookeeper
        restart: always
        ports:
            - 2182:2181
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
..
..

对于最先进(但仍在不断发展)的解决方案,我建议您查看Kubernetes:

> https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/

Statefulsets的新概念提供了很多希望.我希望Docker Swarm能够及时增加类似功能,为每个容器实例分配一个唯一的“粘性”主机名,可以将其用作唯一标识符的基础.

猜你在找的Docker相关文章