docker部署zookeeper集群方式(单主机、多主机)

作者:轩辕龙儿 时间:2021-07-22 02:36:27 

1、一台主机上部署zookeeper集群

下面这个是官方给出的docker-compose的部署方案(这个是都在一台主机上部署的):

version: '3'
services:
   zoo1:
       image: zookeeper
       restart: always
       ports:
           - 2182:2181
       environment:
           ZOO_MY_ID: 1
           ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
   zoo2:
       image: zookeeper
       restart: always
       ports:
           - 2183:2181
       environment:
           ZOO_MY_ID: 2
           ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
   zoo3:
       image: zookeeper
       restart: always
       ports:
           - 2184:2181
       environment:
           ZOO_MY_ID: 3
           ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

2、一台主机部署zookeeper集群分析

我们从上面的分析,最主要的就是ZOO_MY_ID和ZOO_SERVERS(更多环境变量配置参考:https://hub.docker.com/_/zookeeper)

  • ZOO_MY_ID:节点ID

  • ZOO_SERVERS:集群节点地址,多个节点之间使用空格隔开

由此可以看出如果不在一个主机上,那么这几个容器之间就得是想通的,为了使其想通,我们运用了Macvlan网络

3、Macvlan网络

macvlan本身是linxu kernel的模块,本质上是一种网卡虚拟化技术。

其功能是允许在同一个物理网卡上虚拟出多个网卡,通过不同的MAC地址在数据链路层进行网络数据的转发,一块网卡上配置多个 MAC 地址(即多个 interface),每个interface可以配置自己的IP,Docker的macvlan网络实际上就是使用了Linux提供的macvlan驱动.在物理网络看来,每张虚拟网卡都是一个单独的接口。

4、跨主机环境准备

编号主机IP容器IP
主机1192.168.1.18710.0.3.71
主机2192.168.1.18810.0.3.72
主机3192.168.1.18910.0.3.73

5、创建macvlan网络

主机1(主机2和主机3也做如下类似操作):

docker network create -d macvlan --subnet=10.0.3.0/24 --gateway=10.0.3.1 -o parent=em2 zookeeper-kafka-net
  • subnet这里结尾最好是/24,代表255.255.255.0,如果是/16代表255.255.0.0,16这种据说在设置了iptable的情况下会出问题

  • parent后是网卡名称192.168.1.187的网卡名称,可通过ipconfig查找

docker部署zookeeper集群方式(单主机、多主机)

最后的zookeeper-kafka-net是你创建的macvlan网络名称,可随意写

6、docker-compose.yml文件

主机1:

version: "3"
services:
? zookeeper1:
? ? container_name: zookeeper1
? ? image: zookeeper:3.6.2
? ? networks:
? ? ? zookeeper-kafka-net:
? ? ? ? ipv4_address: 10.0.3.71
? ? ports:
? ? ? - "22181:2181"
? ? ? - "22888:2888"
? ? ? - "23888:3888"
? ? environment:
? ? ? ZOO_MY_ID: 1
? ? ? ZOO_SERVERS: server.1=10.0.3.71:2888:3888;2181 server.2=10.0.3.72:2888:3888;2181 server.3=10.0.3.73:2888:3888;2181
? ? restart: always
networks:
? zookeeper-kafka-net:
? ? external:
? ? ? name: zookeeper-kafka-net

主机2:

version: "3"
services:
? zookeeper2:
? ? container_name: zookeeper2
? ? image: zookeeper:3.6.2
? ? networks:
? ? ? zookeeper-kafka-net:
? ? ? ? ipv4_address: 10.0.3.72
? ? ports:
? ? ? - "22181:2181"
? ? ? - "22888:2888"
? ? ? - "23888:3888"
? ? environment:
? ? ? ZOO_MY_ID: 2
? ? ? ZOO_SERVERS: server.1=10.0.3.71:2888:3888;2181 server.2=10.0.3.72:2888:3888;2181 server.3=10.0.3.73:2888:3888;2181
? ? restart: always
networks:
? zookeeper-kafka-net:
? ? external:
? ? ? name: zookeeper-kafka-net

主机3:

version: "3"
services:
? zookeeper3:
? ? container_name: zookeeper3
? ? image: zookeeper:3.6.2
? ? networks:
? ? ? zookeeper-kafka-net:
? ? ? ? ipv4_address: 10.0.3.73
? ? ports:
? ? ? - "22181:2181"
? ? ? - "22888:2888"
? ? ? - "23888:3888"
? ? environment:
? ? ? ZOO_MY_ID: 3
? ? ? ZOO_SERVERS: server.1=10.0.3.71:2888:3888;2181 server.2=10.0.3.72:2888:3888;2181 server.3=10.0.3.73:2888:3888;2181
? ? restart: always
networks:
? zookeeper-kafka-net:
? ? external:
? ? ? name: zookeeper-kafka-net

来源:https://huangge1199.blog.csdn.net/article/details/121101597

标签:docker,部署,zookeeper,集群
0
投稿

猜你喜欢

  • vmware esxi6.5安装使用详细步骤

    2023-10-05 06:28:42
  • 分页实现方法的性能比较

    2007-06-24 12:41:00
  • 中文点击网赚 问题站点的判断

    2009-07-24 15:20:00
  • linux指令man page之rm,mv详解

    2021-08-23 11:27:43
  • linux下如何使用docker安装minio

    2020-12-24 23:25:36
  • 基础教程篇:五个方面何防止网站被挂木马

    2008-10-28 21:05:00
  • 如何推销网站和提高网站流量

    2009-03-02 18:04:00
  • 消息称谷歌Chrome操作系统本周三正式发布

    2009-11-16 08:18:00
  • linux常用命令之VMware10中安装CentOS 6.4图文教程

    2023-01-22 05:39:23
  • VMware虚拟机提示以独占方式锁定此配置文件失败的解决方法

    2022-08-07 02:22:02
  • IIS报Service Unavailable错的解决方案

    2008-04-22 13:52:00
  • DNS服务器:使用防火墙时的应用方法

    2009-05-14 10:36:00
  • 修改z-blog侧栏JS调用

    2010-09-25 13:03:00
  • 借用SSL验证,让IIS信息访问更安全(1)

    2007-03-27 09:36:00
  • 李彦宏:百度进军全球只是时间问题

    2007-11-09 19:16:00
  • IIS Web服务扩展设置 MMC检测到此管理单元发生一个错误处理办法

    2011-06-08 19:03:00
  • DNS Cache 的一些小技巧汇总

    2007-11-19 13:42:00
  • 维护服务器安全的7个基本方法

    2012-02-25 19:53:02
  • CentOS8下的root密码快速修改方法

    2023-11-03 04:28:21
  • “奥巴马”火爆 百度百科词条访问超百万

    2009-11-20 15:16:00
  • asp之家 网站运营 m.aspxhome.com