docker高级应用之多台主机网络互联
目前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,如需转载请自行联系原作者