#DDBMS#構建一個簡單的docker網絡

拓撲圖以下:html

host1:10.20.10.70docker

host2:10.20.10.71shell

分別在主機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隧道:
spa

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):.net

./ldocker.sh

在主機2上啓動一個容器(使用pipework把容器掛在br0上,分配的ip地址爲192.168.2.11):code

./ldocker.sh

進入主機1上的容器,ping主機2上的容器:htm

能夠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上建立多個這樣的網絡,測試結果遲些出吧。

相關文章
相關標籤/搜索