天天看點

Kubernetes必備知識: 主流網絡方案

所屬技術領域:

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 方案

Kubernetes必備知識: 主流網絡方案

Flannel 方案是目前使用最為普遍的。如上圖所示,可以看到一個典型的容器網方案。它首先要解決的是 container 的包如何到達 Host,這裡采用的是加一個 Bridge 的方式。它的 backend 其實是獨立的,也就是說這個包如何離開 Host,是采用哪種封裝方式,還是不需要封裝,都是可選擇的。

現在來介紹三種主要的 backend:

 一種是使用者态的 udp,這種是最早期的實作;

 然後是核心的 Vxlan,這兩種都算是 overlay 的方案。Vxlan 的性能會比較好一點,但是它對核心的版本是有要求的,需要核心支援 Vxlan 的特性功能;

 如果你的叢集規模不夠大,又處于同一個二層域,也可以選擇采用 host-gw 的方式。這種方式的 backend 基本上是由一段廣播路由規則來啟動的,性能比較高。

|資料來源|

名詞定義:

https://blog.csdn.net/bbwangj/article/details/82355337

繼續閱讀