精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Docker高級應用之多臺主機網絡互聯

責任編輯:editor005

2015-02-12 14:39:17

摘自:吟—技術交流 的博客

結果也是一樣,能ping通自己的em1與NODEA(10 10 17 3)的em1網卡,并且對方的ovs2的ip也能ping通,但ovs2里的主機無法ping通 可以看到能ping通NODEA(10 10 17 3)與NODEB(10 10 17 4)(em1網卡都是走物理交換機),但他們2個的ovs2都無法ping通

目前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、安裝基礎環境

  2、下載最新的包

  3、解壓與打包

  之后會在~/rpmbuild/RPMS/x86_64/里有2個文件

  安裝第一個就行

  4、安裝

  5、啟動

  6、查看狀態

  可以看到是正常運行狀態

  具體的安裝詳細步驟可以參考



  https://github.com/openvswitch/ovs/blob/master/INSTALL.RHEL.md與http://www.linuxidc.com/Linux/2014-12/110272.htm
 

二、部署單機環境的docker

  1、下載pipework

  使用這個軟件進行固定ip設置

2、在NODEA(ip是10.10.17.3)里運行下面命令

  可以把下面內容復制到腳本里運行

  根據自己的環境修改上面內容

  運行腳本

可以看到已經啟動了2個容器,分別是test1與test2

  下面從本地登陸指定的ip試試

登陸后可以看到容器內的ip是指定的,并且能ping另外同一個網段的172.16.0.6,外網也能ping通。

  下面進行vxlan測試,需要現在另外一個物理宿主機進行上面的腳本安裝,然后在進行vxlan配置

  3、在NODEB(ip是10.10.17.4)里運行

  腳本內容是

  運行這個腳本

  登陸分別的固定ip試試

可以看到結果跟NODEA(10.10.17.3)里運行的一樣,登陸后可以看到容器內的ip是指定的,并且能ping另外同一個網段的172.16.0.9,外網也能ping通

  然后在試試能否ping通對方的em1網卡與對方ovs2的ip

  4、在NODEA里測試

  能ping通自己的em1與10.10.17.4的em1網卡,并且對方的ovs2的ip也能ping通,但ovs2里的主機無法ping通

  5、在NODEB里測試

結果也是一樣,能ping通自己的em1與NODEA(10.10.17.3)的em1網卡,并且對方的ovs2的ip也能ping通,但ovs2里的主機無法ping通

  6、vxlan設置

  在NODEA里運行

  在NODEB里運行

現在NODEA與NODEB這2臺物理機的網絡都是互通的,容器的網絡也是互通。

  然后在NODEA(10.10.17.3)里ping NODEB(10.10.17.4)的ovs2 ip與容器的ip

可以看到可以在NODEA(10.10.17.3)里ping通NODEB(10.10.17.4)的ovs2 ip與交換機下面的容器ip

  如果各自設置vxlan,還是無法連接請看看iptables里是否給ovs1進行了input放行

  在NODEB里測試

  結果也是一樣,設置了vxlan就可以2個宿主機的所有服務器進行通信。

  目前是2個節點的vxlan,如果是3個節點呢

  7、vxlan多節點應用(超過2個節點)

  架構圖為

  新節點是NODEC(ip是10.10.21.199)

  環境為

  部署單機環境,腳本內容是

  運行腳本

  可以看到可以ping通本地的ovs2 的ip與交換機下面是ip

  可以看到能ping通NODEA(10.10.17.3)與NODEB(10.10.17.4)(em1網卡都是走物理交換機),但他們2個的ovs2都無法ping通

  下面是在NODEC(10.10.21.199)里與10.10.17.3做一個vxlan

  然后還需要在NODEA(10.10.17.3)里配置

之前在NODEA(10.10.17.3)里與NODE(10.10.17.4)做的vxlan使用vx1,這里NODEA(10.10.17.3)與NODEC(10.10.21.199)就使用vx2端口

  然后在NODEA(10.10.17.3)里ping NODEC(10.10.21.199)的ovs2 ip與交換機下面的ip

可以看到是通的

  在NODEC(10.10.21.199)里ping NODEA(10.10.17.3)的ovs2的ip與交換機下面的ip

也是通的,然后從NODEC(10.10.21.199) ping NODEB(10.10.17.4)的ovs2的ip與其交換機的ip

可以看到是通的,平均延遲0.608,并且可以發現使用了vxlan,3個節點,如果想全部互通,只需要2個線連接就行。

  如果使用gre模式,3個節點就需要3個線了,架構圖為

目前使用docker結合openvswitch的vxlan模式就把多臺主機的docker連接起來,這樣很多測試就方便很多,但還是建議把這樣的方式作為測試環境。

  本文來源:吟—技術交流 的博客 原文鏈接:http://dl528888.blog.51cto.com/2382721/1611491

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 濉溪县| 海林市| 铁岭市| 阿坝| 阿城市| 浦县| 通江县| 淮滨县| 左云县| 宜都市| 吴堡县| 平谷区| 名山县| 南木林县| 宣化县| 冀州市| 郁南县| 紫云| 永城市| 建昌县| 陆良县| 鹿邑县| 抚顺县| 米易县| 兰坪| 临猗县| 巴中市| 东丰县| 贵港市| 达日县| 永济市| 宿松县| 昌江| 高密市| 罗江县| 栾川县| 肇东市| 青龙| 安丘市| 乌苏市| 正安县|