博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于zookeeper配置docker overlay network,实现多主机互联
阅读量:5824 次
发布时间:2019-06-18

本文共 1813 字,大约阅读时间需要 6 分钟。

hot3.png

基于zookeeper配置docker overlay network,实现多主机互联 博客分类: docker

docker实现多主机互联有很多方法,基于openvswitch等。docker在1.9之后支持overlay network特性。可以方便的实现多主机互联。

 

用docker创建overlay网络,需要一个key-value存储服务,存储各个主机节点在overlay网络中的配置信息。我们下面以两台主机为例讲一下如何基于zookeeper配置overlay网络。

 

首先有两台主机分别叫Host1和Host2,操作系统为CentOS7,内核版本3.12以上,我的是4.3。Host1和Host2能够互通,我的机器是通过eno16777736端口互通的。

 

第一步,首先在Host1上安装zookeeper,我安装的是zookeeper3.4.7,用默认配置启动,zookeeper监听端口为2181.

第二步,在Host1和Host2上分别安装docker 1.9版本。并修改/usr/lib/systemd/system/docker.service配置:

[Service]

Type=notify

ExecStart=/usr/bin/docker daemon --cluster-store=zk://192.168.31.208:2181 --cluster-advertise=eno16777736:2376 -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock

 

其中--cluster-store是指向key-value存储的地址,我这里就是zookeeper的地址,zookeeper里保存着整个overlay网络配置和节点信息。--cluster-advertise中的eno16777736是Host1和Host2互通的端口。

然后执行systemctl daemon-reload使配置生效,然后执行systemctl start docker.service启动docker服务。

docker服务启动后,通过netstat -na|grep 2181可以看到docker引擎已经和zookeeper建立了连接。

 

第三步,创建overlay网络. docker network ls可以查看docker 创建了哪些网络,如下:

[root@node08 docker]# docker network ls

NETWORK ID          NAME                DRIVER    

4a118dc25d96        bridge              bridge              

7e2b69f7e6b3        none                null                

70ea5d08e37f        host                host

 

bridge,none,host是默认网络,我们需要创建一个overlay网络,执行下面的命令:

docker network create --driver overlay net1

用docker network ls查看,net1已经创建成功。

NETWORK ID          NAME                DRIVER    

2b0e076bc8fa         net1                 overlay

4a118dc25d96        bridge              bridge              

7e2b69f7e6b3        none                null                

70ea5d08e37f        host                host

 

 

然后我们在Host1和Host2上分别创建两个容器:

 docker run --restart always -itd --net=net1 --hostname=test1 --name=test1 centos6.7 /bin/bash

 

docker attach test1,执行ifconfig,可以看到Host1的容器test1的eth0的IP是10.0.0.2,Host2的容器test1的eth0的IP是10.0.0.3.

在Host1的test1执行ping 10.0.0.3,能够ping通Host2的容器test1.

同样在Host2的容器test1里ping 10.0.0.2,也能够ping通。

这样多主机overlay网络就创建成功了。

 

http://jnzg905.iteye.com/blog/2269583

转载于:https://my.oschina.net/xiaominmin/blog/1598835

你可能感兴趣的文章
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
用计算器计算“异或CRC”
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
JDBC二查询(web基础学习笔记八)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>
ios11文件夹
查看>>