ovs+docker網絡配置
阿新 • • 發佈:2018-03-21
ovs此文主要以《實戰Docker到Kubernetes技術系列視頻教程》為基礎,記錄ovs+docker網絡的配置實驗過程。
本人對網絡不甚了解。只是純粹按照課程要求,配置成功。具體的原理請自行深入學習。
網絡架構圖
實驗目的
這裏有三個不同網絡,主機網絡192.168.18網段,兩臺host上的docker0的網絡也是不同子網。
需要實現兩臺不同主機的docker0可以實現通信。即在18.131機器上,可以ping通 172.17.43.1;18.128機器可以ping通172.17.42.1。
實驗過程
- 兩臺虛擬機
分別配置網卡ip為192.168.18.131 與 192.168.18.128
設置firewalld stop,selinux disabled - 安裝openvswitch軟件
下載相關rpm包,yum install 安裝
設置openvswitch服務自啟動,並處於運行狀態。 - 安裝docker軟件
按照官方文檔安裝,設置自啟動,並處於運行狀態 - 設置docker0ip
默認docker0是沒有設置ip的。使用此網頁的方法設置docker0 ip。
即添加文件/etc/docker/daemon.json[root@host1 ~]# cat /etc/docker/daemon.json { "bip": "172.17.43.1/24" }
- 使用ovs相關命令,添加br0網橋,br0及gre1 port
在機器18.131上運行: ovs-vsctl add-br br0 ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre option:remote_ip=192.168.18.128
註意:上面的remote_ip需設置為對端的ip。
執行完畢後,使用ovs-vsctl show可看到如下輸出:[root@host1 ~]# ovs-vsctl show 52566796-f849-4b18-a546-0c0b8853432a Bridge "br0" Port "br0" Interface "br0" type: internal Port "gre1" Interface "gre1" type: gre options: {remote_ip="192.168.18.131"} ovs_version: "2.5.0"
之後,執行brctl相關命令,將br0添加到docker0
brctl addif docker0 br0 ip link set dev br0 up ip link set dev docker0 up iptables -t nat -F; iptables -F
- 添加路由
18.128上執行 ip route add 172.17.0.0/16 dev docker0 route add -net 172.17.0.0/16 gw 192.168.18.131
添加路由完成後,ip route的截圖如下
- 確定docker0處於up狀態
我的實驗環境中,docker0網卡一直處於down的狀態,我的解決方式是,運行起一個容器,docker0網口就up了。 - 現在執行ping操作,發現兩個不同host上的docker0網口可以通信了。
ovs+docker網絡配置