flannel網絡的VXLAN及host-gw


http://www.fly63.com/article/detial/1738

VXLAN是Linux內核本身支持的一種網絡虛擬化技術,是內核的一個模塊,在內核態實現封裝解封裝,構建出覆蓋網絡,其實就是一個由各宿主機上的Flannel.1設備組成的虛擬二層網絡。

由於VXLAN由於額外的封包解包,導致其性能較差,所以Flannel就有了host-gw模式,即把宿主機當作網關,除了本地路由之外沒有額外開銷,性能和calico差不多,由於沒有疊加來實現報文轉發,這樣會導致路由表龐大。因為一個節點對應一個網絡,也就對應一條路由條目。

host-gw雖然VXLAN網絡性能要強很多。,但是種方式有個缺陷:要求各物理節點必須在同一個二層網絡中。
物理節點必須在同一網段中。這樣會使得一個網段中的主機量會非常多,萬一發一個廣播報文就會產生干擾。
在私有雲場景下,宿主機不在同一網段是很常見的狀態,所以就不能使用host-gw了。

VXLAN還有另外一種功能,VXLAN也支持類似host-gw的玩法,如果兩個節點在同一網段時使用host-gw通信,如果不在同一網段中,即 當前pod所在節點與目標pod所在節點中間有路由器,就使用VXLAN這種方式,使用疊加網絡。
結合了Host-gw和VXLAN,這就是VXLAN的Directrouting模式

因此Flnnel的VXLAN模式有兩種:

  1. VXLAN: 原生的VXLAN,即擴展的虛擬LAN
  2. Directrouting:直接路由型

 

Flannel VXLAN之Directrouting模式配置

修改下載的kube-flannel.yml,將flannel的configmap對象改為:

net-conf.json: |
    {
      "Network": "10.244.0.0/16",  #默認網段
      "Backend": {
        "Type": "VXLAN",    #增加,
        "Directrouting": true  #增加
      }
    }

 

然后把原來的flannel刪除,再重新apply:

 

參考:

https://blog.csdn.net/weixin_30894583/article/details/97545040


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM