所屬技術領域:
K8s
|名詞定義|
常見的容器網絡方案可以從協定棧層級、穿越形态、隔離方式這三種形式進行劃分。
協定棧層級:
第一種:協定棧二層。
第二種:協定棧三層(純路由轉發)。
第三種:協定棧二層加三層。
穿越形态:
按穿越的形态劃分,這個與實際部署環境十分相關。穿越形态分為兩種:Underlay、Overlay。
Underlay:在一個較好的一個可控的網絡場景下,我們一般利用 Underlay。可以這樣通俗的了解,無論下面是裸機還是虛拟機,隻要網絡可控,整個容器的網絡便可直接穿過去 ,這就是 Underlay。
Overlay:Overlay 在雲化場景比較常見。Overlay 下面是受控的 VPC 網絡,當出現不屬于 VPC 管轄範圍中的 IP 或者 MAC,VPC 将不允許此 IP/MAC 穿越。出現這種情況時,我們都利用 Overlay 方式來做。
隔離方式:
隔離方式與多種戶型相關(使用者與使用者之間的隔離方式),隔離方式分為 FLAT、VLAN、VXLAN 三種:
FLAT:純扁平網絡,無隔離;
VLAN:VLAN 機房中使用偏多,但實際上存在一個問題?就是它總的租戶數量受限。衆所周知,VLAN 具有數量限制。
VXLAN:VXLAN 是現下較為主流的一種隔離方式。因為它的規模性較好較大,且它基于 IP 穿越方式較好。
|技術特點|
典型的容器網絡實作方案
容器網絡可能時Kubernetes領域最為百花齊放的一個領域,依照IaaS層的配置、外部實體網絡的裝置、性能or靈活優先,可以有不同的實作:
Flannel,最為普遍的實作,提供多種網絡backend實作,覆寫多種場景
Calico,采用BGP提供網絡直連,功能豐富,對底層網絡有要求
Canal(Flannel for network + Calico for Firewalling),嫁接型創新項目
Ciilium,基于eBPF和XDP的高性能Overlay網絡方案
Kube-router,同時采用BGP提供網絡直連,內建基于LVS的負載均衡能力
Pomana,才赢BGP or OSPF 提供網絡直連能力的方案
WeaveNet,采用UDP封裝實作L2 Overlay,支援使用者态(慢,可加密)/内核心态(快,不能加密)兩種實作
Flannel 方案

Flannel 方案是目前使用最為普遍的。如上圖所示,可以看到一個典型的容器網方案。它首先要解決的是 container 的包如何到達 Host,這裡采用的是加一個 Bridge 的方式。它的 backend 其實是獨立的,也就是說這個包如何離開 Host,是采用哪種封裝方式,還是不需要封裝,都是可選擇的。
現在來介紹三種主要的 backend:
一種是使用者态的 udp,這種是最早期的實作;
然後是核心的 Vxlan,這兩種都算是 overlay 的方案。Vxlan 的性能會比較好一點,但是它對核心的版本是有要求的,需要核心支援 Vxlan 的特性功能;
如果你的叢集規模不夠大,又處于同一個二層域,也可以選擇采用 host-gw 的方式。這種方式的 backend 基本上是由一段廣播路由規則來啟動的,性能比較高。
|資料來源|
名詞定義:
https://blog.csdn.net/bbwangj/article/details/82355337