ovs+docker網絡配置

此文主要以《實戰Docker到Kubernetes技術系列視頻教程》爲基礎,記錄ovs+docker網絡的配置實驗過程。

本人對網絡不甚瞭解。只是純粹按照課程要求,配置成功。具體的原理請自行深入學習。

網絡架構圖

ovs+docker網絡配置

實驗目的

這裏有三個不同網絡,主機網絡192.168.18網段,兩臺host上的docker0的網絡也是不同子網。
需要實現兩臺不同主機的docker0可以實現通信。即在18.131機器上,可以ping通 172.17.43.1;18.128機器可以ping通172.17.42.1。

實驗過程

  1. 兩臺虛擬機
    分別配置網卡ip爲192.168.18.131192.168.18.128
    設置firewalld stop,selinux disabled
  2. 安裝openvswitch軟件
    下載相關rpm包,yum install 安裝
    設置openvswitch服務自啓動,並處於運行狀態。
  3. 安裝docker軟件
    按照官方文檔安裝,設置自啓動,並處於運行狀態
  4. 設置docker0ip
    默認docker0是沒有設置ip的。使用此網頁的方法設置docker0 ip。
    即添加文件/etc/docker/daemon.json
    [root@host1 ~]# cat /etc/docker/daemon.json 
    {
    "bip": "172.17.43.1/24"
    }
  5. 使用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
  6. 添加路由
    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的截圖如下
    ovs+docker網絡配置

  7. 確定docker0處於up狀態
    我的實驗環境中,docker0網卡一直處於down的狀態,我的解決方式是,運行起一個容器,docker0網口就up了。
  8. 現在執行ping操作,發現兩個不同host上的docker0網口可以通信了。
    ovs+docker網絡配置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章