全部產品
Search
文件中心

Container Service for Kubernetes:Terway與Flannel的對比

更新時間:Aug 20, 2024

Container Service Kubernetes 版支援兩種容器網路外掛程式:Terway與Flannel。這兩種容器網路外掛程式擁有不同的底層實現與特性,適用於不同的應用情境。容器網路外掛程式需要在建立叢集時進行安裝,且叢集建立後不支援更改,請您在建立叢集前完成容器網路外掛程式選型。

對比項

Terway

Flannel

外掛程式來源

阿里雲自研的網路外掛程式,專為ACK最佳化,擁有多種工作模式。

Kubernetes社區提供的的Flannel CNI外掛程式。

適用情境

使用大規模叢集,希望避免IP地址浪費,需要較高網路效能,或對容器網路有自訂控制需求的情境。

使用小規模叢集,僅需要簡單的容器網路體驗,不需要使用網路原則(Network Policy),也無需對容器網路進行自訂控制的情境。

Pod網段

  • 直接將阿里雲的彈性網卡(ENI)分配給容器,Pod網段直接使用VPC的網段。

  • 支援對Pod網段進行擴容。

  • Pod使用獨立於VPC的網段。使用Flannel時,Pod網段、節點網段(VPC網段)、Service網段互相獨立,不能重合。

  • 不支援Pod網段擴容。

單節點Pod限額

Pod使用節點ENI,單節點Pod限額由節點的規格決定。詳細計算方法請參見節點Pod限額計算方法

Pod限額由分配給節點的Pod網段大小決定,與節點規格無關。每個節點預設支援256個Pod。

叢集規模

預設支援5000個節點,申請配額後最大支援15000個節點。

使用Flannel時,每一個節點對應一條VPC路由表項。受限於VPC路由表大小,單VPC預設支援200個節點,申請配額後最大支援1000個節點。

網路效能

  • 支援獨佔ENI模式:Pod獨佔ENI,擁有極高的網路效能。

  • 支援DataPathV2加速模式:Pod訪問叢集內的端點時支援通過eBPF繞過節點網路通訊協定棧,加速網路訪問。

Pod使用所在節點的網路通訊協定棧對外訪問,存在NAT轉換損耗。

IPv4/IPv6雙棧

支援雙棧。

不支援雙棧。

Network Policy支援

支援Kubernetes原生網路原則Network Policy,可以定義複雜的容器間存取控制。

不支援Network Policy。

固定Pod IP

支援為Pod配置固定IP。

不支援為Pod配置固定IP。

網路安全

支援為Pod配置獨立的虛擬交換器與安全性群組。

不支援為Pod配置獨立的虛擬交換器與安全性群組。

會話保持

負載平衡後端直接對接Pod,依託會話保持能力,可以實現在後端Pod發生變化時服務無中斷。

負載平衡後端使用NodePort串連Pod,在Pod發生變化時,流量會中斷, 可能導致業務上的重試。

多叢集互訪

多個叢集的Pod之間只要設定安全性群組開放連接埠就可以互相通訊。

無法支援。

Pod源IP保留

Pod訪問VPC內其他端點,所使用的源IP都是Pod IP,便於審計。

Pod訪問VPC內其他端點,所使用的源IP是節點IP,Pod IP無法保留。

後續步驟

  • 在建立叢集後,為Pod、Service、節點分配的網段無法修改。網段的大小決定這三種資源的數量上限,可能會對您的業務部署產生影響。規劃不同的網段可以實現資源在網路邏輯上的隔離,以便於您實現存取控制、定製化路由等操作。因此推薦您在建立叢集前完成網段規劃,具體操作請參見Kubernetes叢集網路規劃

  • 完成網段規劃後: