docker高级应用之多台主机网络互联

目前docker主要应用于单机环境,使用网桥模式,但如果想把多台主机网络互相,让多台主机内部的container互相通信,就得使用其他的软件来帮忙,可以使用Weave、Kubernetes、Flannel、SocketPlane或者openvswitch等,我这里就使用openvswitch来介绍docker多台主机网络互通。

先看一个使用openvswitch连接的架构图,连接的方式是vxlan

docker高级应用之多台主机网络互联

说明:

这里有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,效果很好,后续给大家介绍集群)。

下面是部署方法

环境

docker高级应用之多台主机网络互联

一、安装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,如需转载请自行联系原作者