#DDBMS#构建一个简单的docker网络
#DDBMS#构建一个简单的docker网络
Hochikong 发表于3年前
#DDBMS#构建一个简单的docker网络
  • 发表于 3年前
  • 阅读 181
  • 收藏 4
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

拓扑图如下:

host1:10.20.10.70

host2:10.20.10.71

分别在主机1和主机2上创建一个ovs交换机:

ovs-vsctl add-br ovs0
ip link set ovs0 up

分别为ovs0添加一个port(br0在同一网段):

ovs-vsctl add-port ovs0 br0

在主机1创建通往host2的gre隧道:

ovs-vsctl add-port ovs0 gre0 -- set interface gre0 type=gre options:remote_ip=10.20.10.71

在主机2创建通往host1的gre隧道:

ovs-vsctl add-port ovs0 gre0 -- set interface gre0 type=gre options:remote_ip=10.20.10.70

在主机1上启动一个容器(使用pipework把容器挂在br0上,分配的ip地址为192.168.2.10):

./ldocker.sh

在主机2上启动一个容器(使用pipework把容器挂在br0上,分配的ip地址为192.168.2.11):

./ldocker.sh

进入主机1上的容器,ping主机2上的容器:

可以ping通。。。



配置成功


host1上的ldocker.sh代码如下(反复试验的原因,打到手软了,所以用个简单脚本):

#!/bin/sh
docker run -itd --name=test1 hochikong/erbuntu:v1
pipework br0 test1 192.168.2.10/24

关于如何进入容器操作ping,请参见本人另一博文:http://my.oschina.net/hochikong/blog/369036


总结:这样的方案可以让同一网段的容器跨机器进行通讯,实现了应用的灵活部署。另外,我的拓扑和这个架构(http://www.sdnlab.com/8236.html)实现的功能是一样的,大家也可以参考下,不过我是bridge和OVS混用的,还可以在ovs0上实现VLAN,目前还没发现有什么大问题。

另外我尝试为ovs0配置ip,两个ovs0配置同一网段的ip(比如10.0.0.1和10.0.0.2),网络也可以通讯,去掉也没问题。

接下来我要尝试在两个host上创建多个这样的网络,测试结果迟些出吧。

标签: docker 网络
共有 人打赏支持
粉丝 19
博文 108
码字总数 59961
作品 1
×
Hochikong
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: