日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes网络方案Flannel的学习笔记

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes网络方案Flannel的学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:?李佶澳???轉載請保留:原文地址???發布時間:2018-10-09 14:15:58 +0800

?

  • 說明
  • 工作原理
    • 已經支持的Backends
    • 處于試驗階段的Backends
  • 其它內容?
  • 參考

說明

Flannel是Kubernets最早期的網絡方案之一,也是現在常用的方案之一。當時只了解到它采用overlay的方式,于是重點學習calico了,后來發現用到flannel的公司還挺多,需要系統學習下。

工作原理

原理很簡單,在每一個需要使用Flannel網絡的機器上都運行有一個名為flanneld的服務。flanneld為所在的機器申請到一小段虛擬網絡的地址空間,并負責將通過這些虛擬地址發送的報文封裝后,用宿主機的網絡送出。flanneld還要負責解讀宿主機網絡收到發送給虛擬網絡的中的地址的報文。

虛擬網絡地址的分配情況直接寫入etcd,或者通過kubernetes的api寫入。

核心是:Flannel是怎樣通過宿主機網絡傳遞虛擬機網絡中的報文的? Flannel支持幾種不同的方式,把它們叫做Backends。

已經支持的Backends

@2018-10-09 16:47:10

最推薦使用的是vxlan,使用linux kernel的vxlan實現。vxlan backend的配置項有以下幾個:

Type: string,backend類型,就是"vxlan" VNI: number,vxlan協議中的vni編號,不同的vni號碼代表不同網段,類似vlan號,默認是1 Port: number, 宿主機的udp端口,用來發送封裝后的報文,使用linux內核默認配置,8472 GBP: boolean,是否使用vxlan Group Policy,默認false DirectRouting: boolean,是否啟用直接路由,當兩臺宿主機位于同一個網段時,不封裝通過路由直接送達,默認false

GBP特性,參考:vxlan: Group Policy extension。

其次是host-gw的方式,通過直接路由的方式傳送虛擬網絡報文。這種方式要求所有宿主機是二層直達的(中間不經過路由),原理和vxlan中的DirectRouting相同。

Vxlan DriectRouting是能夠直接路由的時候采用直接路由的方式,否則就通過vxlan。 Host-gw要求所有宿主機都支持直接路由方式(在同一個二層網絡中),并全部采用直接路由的方式。

host-gw的配置項只有一個:

Type: string,backend類型,就是"host-gw"

udp只建議調試時使用,或者另外兩種方式不能使用的時候(譬如宿主機內核不支持vxlan)使用。

Type:string,backend類型,就是"udp" Port: number,宿主機udp端口,默認8285

處于試驗階段的Backends

@2018-10-09 16:47:23

AliVPC,阿里云的VPC

Type (string): alloc

Alloc,這個沒明白怎么回事,說是”performs subnet allocation with no forwarding of data packets”:

Type (string): alloc

AWS VPC,AWS的VPC:

Type (string): aws-vpc RouteTableID (string): [optional] The ID of the VPC route table to add routes to.

GCE,Google的云服務:

Type (string): gce

IPIP,使用內核實現的ipip隧道:

Type (string): ipip DirectRouting (Boolean):

IPSec,使用內核實現的IpSec:

Type (string): ipsec PSK (Boolean): Required. UDPEncap (string): Optional ESPProposal (string): Optional

其它內容?

Flannel是一個特別簡單的網絡方案,文檔也就特別簡單。把上面的backends梳理完,文檔基本上就全讀完了。

Kubernetes1.12從零開始(五):自己動手部署Kubernetes中講到,Kubernetes設計的時候,就降低了對網絡模型的要求。所以Flannel這樣簡單的網絡方案,可以用于Kubernetes。

不過要注意,Flannel這個項目小而精,缺少了一些功能。最直接的缺陷就是:不支持ACL,即Kubernetes中的Network Policy。

根據Flannel項目Readme中的表述,這個項目似乎也不打算支持”network policy”:

Flannel is focused on networking. For network policy, other projects such as Calico can be used.

有意思一的是Calico啟動了一個Canal項目,糅合了Calico和Flannel。Network policy功能有calico提供,network功能用flannel提供,也是醉了。

Flannels, Canals and Tigers, Oh My! — Big News in the Land of Project Calico介紹了Canal的誕生過程。

參考

  • Github Flannel
  • Flannel: Backends
  • Kubernetes1.12從零開始(五):自己動手部署Kubernetes
  • Github: Canal
  • Flannels, Canals and Tigers, Oh My! — Big News in the Land of Project Calico
  • vxlan: Group Policy extension
  • ?

    轉載于:https://www.cnblogs.com/lijiaocn/p/9769746.html

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的Kubernetes网络方案Flannel的学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。