Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7032392
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 架构设计与优化

2015-02-13 21:06:33

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

[日期:2015-02-13] 来源:Linux社区  作者:dl528888 [字体:  ]
目前docker主要应用于单机环境,使用网桥模式,但如果想把多台主机网络互相,让多台主机内部的container互相通信,就得使用其他的软件来帮忙,可以使用Weave、Kubernetes、Flannel、SocketPlane或者openvswitch等,我这里就使用openvswitch来介绍docker多台主机网络互通。

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

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

说明:
这里有2台主机,分别是NODEA与NODEB,系统是7,内核是3.18(默认centos7内核是3.10,但想使用vxlan,所以得升级,参考 ) 
docker是1.3.2版本,存储引擎是devicemapper。
每台主机里都有2个网桥ovs1与ovs2,ovs1是管理网络,连接内网网卡em1,ovs2是数据网络,docker测试机都连接这个ovs2,并且container创建的时候网络都是none,使用pipework指定固定ip。
然后2台主机使用vxlan连接网络。
重要:
我个人认为使用这个模式并且指定固定ip,适用于的环境主要是给研发或者个人的测试模式,如果是集群环境,没必要指定固定ip(我这里的集群就没有使用固定ip,使用动态ip,效果很好,后续给大家介绍集群)。
下面是部署方法

环境

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

CentOS 6/7系列安装Docker 

Docker的搭建Gitlab CI 全过程详解 

Docker安装应用(CentOS 6.5_x64) 

在 Docker 中使用 MySQL 

在 Trusty 14.04 (LTS) (64-bit)安装Docker 

Docker安装应用(CentOS 6.5_x64) 

Ubuntu 14.04安装Docker  

阿里云CentOS 6.5 模板上安装 Docker 

 

一、安装openvswitch
我的版本是最新的2.3.1
1、安装基础环境

   yum install gcc make python-devel openssl-devel kernel-devel graphviz \ 
  kernel-debug-devel autoconf automake rpm-build -rpm-config \ 
  libtool

2、下载最新的包
 wget

3、解压与打包
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 
rpmbuild -bb --without check openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec

之后会在~/rpmbuild/RPMS/x86_64/里有2个文件
total 9500 
-rw-rw-r-- 1 ovswitch ovswitch 2013688 Jan 15 03:20 openvswitch-2.3.1-1.x86_64.rpm 
-rw-rw-r-- 1 ovswitch ovswitch 7712168 Jan 15 03:20 openvswitch-debuginfo-2.3.1-1.x86_64.rpm

安装第一个就行
4、安装
yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.3.1-1.x86_64.rpm

5、启动
systemctl start openvswitch

6、查看状态
[root@docker-test3 tmp]# systemctl status openvswitch 
openvswitch.service - LSB: Open vSwitch switch 
  Loaded: loaded (/etc/rc.d/init.d/openvswitch) 
  Active: active (running) since Wed 2015-01-28 23:34:01 CST; 6 days ago 
  CGroup: /system.slice/openvswitch.service 
          ├─20314 ovsdb-server: monitoring pid 20315 (healthy) 
          ├─20315 ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/var/run/openvswitch/db.sock --private-key=db:Open_vSwitch,SSL,p... 
          ├─20324 ovs-vswitchd: monitoring pid 20325 (healthy) 
          └─20325 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log... 
  
Jan 28 23:34:01 ip-10-10-17-3 openvswitch[20291]: /etc/openvswitch/conf.db does not exist ... (warning). 
Jan 28 23:34:01 ip-10-10-17-3 openvswitch[20291]: Creating empty database /etc/openvswitch/conf.db [  OK  ] 
Jan 28 23:34:01 ip-10-10-17-3 openvswitch[20291]: Starting ovsdb-server [  OK  ] 
Jan 28 23:34:01 ip-10-10-17-3 ovs-vsctl[20316]: ovs|00001|vsctl|INFO|Called as ovs-vsctl --no-wait -- init -- set Open_vSwitch . db-version=7.6.2 
Jan 28 23:34:01 ip-10-10-17-3 ovs-vsctl[20321]: ovs|00001|vsctl|INFO|Called as ovs-vsctl --no-wait set Open_vSwitch . ovs-version=2.3.1 "external-ids:system-id=\"6ea..."unknown\""
Jan 28 23:34:01 ip-10-10-17-3 openvswitch[20291]: Configuring Open vSwitch system IDs [  OK  ] 
Jan 28 23:34:01 ip-10-10-17-3 openvswitch[20291]: Starting ovs-vswitchd [  OK  ] 
Jan 28 23:34:01 ip-10-10-17-3 openvswitch[20291]: Enabling remote OVSDB managers [  OK  ] 
Jan 28 23:34:01 ip-10-10-17-3 systemd[1]: Started LSB: Open vSwitch switch. 
Hint: Some lines were ellipsized, use -l to show in full.

可以看到是正常运行状态
具体的安装详细步骤可以参考
与 

更多详情见请继续阅读下一页的精彩内容: 

阅读(871) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~