目前docker主要应用于单机环境,使用网桥模式,但如果想把多台主机网络互相,让多台主机内部的container互相通信,就得使用其他的软件来帮忙,可以使用Weave、Kubernetes、Flannel、SocketPlane或者openvswitch等,我这里就使用openvswitch来介绍docker多台主机网络互通。
先看一个使用openvswitch连接的架构图,连接的方式是vxlan
说明:
这里有2台主机,分别是NODEA与NODEB,系统是centos7,内核是3.18(默认centos7内核是3.10,但想使用vxlan,所以得升级,参考http://dl528888.blog.51cto.com/2382721/1609850)
docker是1.3.2版本,存储引擎是devicemapper。
每台主机里都有2个网桥ovs1与ovs2,ovs1是管理网络,连接内网网卡em1,ovs2是数据网络,docker测试机都连接这个ovs2,并且container创建的时候网络都是none,使用pipework指定固定ip。
然后2台主机使用vxlan连接网络。
重要:
我个人认为使用这个模式并且指定固定ip,适用于的环境主要是给研发或者个人的测试模式,如果是集群环境,没必要指定固定ip(我这里的集群就没有使用固定ip,使用动态ip,效果很好,后续给大家介绍集群)。
下面是部署方法
环境
一、安装openvswitch
我的版本是最新的2.3.1
1、安装基础环境
1
2
3
|
yum
install
gcc
make
python-devel openssl-devel kernel-devel graphviz \
kernel-debug-devel autoconf automake rpm-build redhat-rpm-config \
libtool
|
2、下载最新的包
1
|
wget http:
//openvswitch
.org
/releases/openvswitch-2
.3.1.
tar
.gz
|
3、解压与打包
1
2
3
4
5
|
tar
zxvf openvswitch-2.3.1.
tar
.gz
mkdir
-p ~
/rpmbuild/SOURCES
cp
openvswitch-2.3.1.
tar
.gz ~
/rpmbuild/SOURCES/
sed
's/openvswitch-kmod, //g'
openvswitch-2.3.1
/rhel/openvswitch
.spec > openvswitch-2.3.1
/rhel/openvswitch_no_kmod
.spec
|
本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1611491
,如需转载请自行联系原作者