如何在Docker群上设置zookeeper群集
环境 :6个服务器docker swarm集群(2个master和4个worker)
要求 :我们需要在现有的docker群上设置zookeeper群集。
阻止 :要在群集中设置zookeeper,我们需要在每个服务器configuration中提供所有zk服务器,并在myid文件中提供唯一的ID。
问题 :当我们在docker swarm中创buildzookeeper的副本时,我们如何为每个副本提供唯一的ID。 另外我们如何更新每个zookeeper容器的ID的zoo.cfgconfiguration文件。
这目前不是一个简单的问题。 当每个集群成员都需要唯一的标识和存储卷时,完全可伸缩的有状态应用程序集群是非常棘手的。
在Docker Swarm上,今天,最好build议您在撰写文件(见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 .. ..
对于最先进(但仍在不断发展)的解决scheme,我build议检查Kubernetes:
Statefulsets的新概念提供了许多的承诺。 我期望Docker Swarm能够及时增长类似的function,每个容器实例都被分配一个唯一的“sticky”主机名,可以作为唯一标识符的基础。
- 创build主题,但在Kubernetes上使用Python获取Kafka FailedPayloadsError
- 在同一台机器上的两个docker客人中创build卡夫卡经纪人和动物园pipe理员有什么优点和缺点?
- 对于基于Docker容器的实现,在同一个容器中运行一对Kafka服务器和Zookeeper服务器是否有意义?
- ECS +动物园pipe理员 – 动物园pipe理员必须被docker化
- 如何部署一个回声应用程序Marathon(在Mac上的Docker Mesos上)?
- 卡夫卡docker工人 – 不能从docker集装箱外生产或消费
- 为什么我不能访问基于Docker的zookeeper端口
- Zookeeper /参展商集群节点继续重新启动
- 使用Kafka代理的Dockerized Spring Cloud Stream服务无法连接到Zookeeper