Docker多主機網絡 OpenvSwitch

1、Open vSwitch

     Open vSwitch(如下簡稱爲OVS),英文全稱:OpenVirtual Switch,顧名思義,Open vSwitch就是開放虛擬交換。咱們能夠把他理解成一種標準,它旨在經過編程擴展,使龐大的網絡自動化(配置、管理、維護),同時還支持標準的管理接口和協議。python

    也能夠把OVS理解成開源虛擬交換機,能夠運行在各種虛擬化平臺(如KVM,Xen)上的虛擬機交換機。在虛擬化平臺上,OVS 能夠爲動態變化的端點提供 2 層交換功能,很好的控制虛擬網絡中的訪問策略、網絡隔離、流量監控等等。linux

2、利用Open vSwitch 構建Docker多主機網絡

  2.1 規劃docker網段 docker

  默認的docker0的網段是 172.17.0.0/16,咱們須要爲每個docker主機的docker0網段從新劃分一個新網段編程

節點 IP docker0網段
openvswitch01 172.16.200.218 172.17.1.0/24
openvswitch02 172.16.200.223 172.16.2.0/24

  2.2 安裝OVS vim

  兩臺機器上都要安裝  網絡

wget http://downloads.naulinux.ru/pub/NauLinux/7x/x86_64/Extras/RPMS/Projects/OpenFlow/openvswitch-2.5.0-2.el7.x86_64.rpm

yum -y localinstall openvswitch-2.5.0-2.el7.x86_64.rpm

# 啓動
systemctl start openvswitch

# 查看狀態
systemctl status openvswitch

# 開機自啓
systemctl enable openvswitch

  

  2.3 修改docker0默認網段 spa

vim /lib/systemd/system/docker.service

#節點1
ExecStart=/usr/bin/dockerd --bip=172.17.1.1/24

# 節點2
ExecStart=/usr/bin/dockerd --bip=172.17.2.1/24


systemctl daemon-reload

systemctl restart docker

  

  2.4 建立網橋並激活3d

  兩邊都操做 rest

ovs-vsctl add-br br0

ip link set dev br0 up

  2.5 創建gre隧道  code

# 節點1
ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip=172.16.200.223

# 若是有多個節點,須要添加多條greX(gre0,gre1,...)

## 將docker0加入br0
brctl addif docker0 br0



# 節點2
ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip=172.16.200.218

brctl addif docker0 br0

  

  查看創建的隧道

  

  查看docker0網段

  

  

 

   2.6 添加靜態路由

  在兩個節點上新建docker容器,並驗證互通性

  

  

  可見,兩個節點中的IP地址分別爲  172.17.1.0/24 網段和 172.17.2.0/24網段,目前他們還不能相互通訊

  

  添加靜態路由

# 兩個節點
 
ip route add 172.17.0.0/16 dev docker0

  驗證:

  

  

  能夠互通

 

       注:以上配置重啓就部分會消失,能夠設置腳本啓動加載 

# 啓動br0網橋
ip link set dev br0 up

# 將docker0添加到br0中
brctl addif docker0 br0

# 添加靜態路由
ip route add 172.17.0.0/16 dev docker0



# 添加到/etc/rc.local
相關文章
相關標籤/搜索