隨著容器技術的發展成熟,越來越多的元件遷移到容器,在技術遷移過程中,資料庫,遊戲,AI 這些元件對容器網路效能(時延,吞吐,穩定性)提出了更高的要求。為了得到更優的時延和吞吐表現,各大雲廠商都在致力於縮短節點內容器的網路訪問鏈路,讓資料包能儘可能快地轉發到容器網路卡。
騰訊雲容器服務 TKE 藉助智慧網路卡推出下一代容器網路方案,該方案實現了一個 Pod 獨佔一張彈性網路卡,不再經過節點網路協議棧(default namespace),極大縮短了容器訪問鏈路,縮短了訪問時延,並使 PPS 可以達到整機上限。該方案實現了短連結場景下 QPS 相比之前容器網路方案(策略路由方案,網橋方案)提升 50%-70%;長連結場景下 QPS 提升 40%-60%。
由於不再經過節點網路協議棧,傳統基於 iptables 和 IPVS 的 ClusterIP service 訪問方案不能直接適用於該方案。為了實現該方案下 Pod 可以直接訪問 ClusterIP service,TKE 推出 share-NS IPVS 方案,使得在容器網路名稱空間下也可以訪問到節點網路協議棧的 IPVS 規則,同時配合 CLB 直通 Pod,實現了完整意義上的彈性網路卡直通。
該方案實現了針對 ClusterIP service 短連結場景下 QPS 相比 iptables 方案提升 40%-60%,IPVS 方案提升 70%-90%;長連結場景下 QPS 相比 iptables 方案提升 30%-50%,IPVS 方案提升 50%-70%。
新一代容器網路方案推出背景
在介紹新一代容器網路方案前,先和大家介紹一下 TKE 現有網路方案,和現有網路方案面臨的挑戰,以及客戶新訴求。
現有網路方案介紹
騰訊雲容器服務 TKE 目前提供了兩種容器網路模式可供使用者選擇使用。
GlobalRouter 模式:基於 vpc 實現的全域性路由模式, 目前是 TKE 預設網路方案。該模式依託於 vpc 底層路由能力,不需要在節點上配置 vxlan 等 overlay 裝置,就可以實現容器網路 和 vpc 網路的互訪,並且相比於 calico/flannel 等網路方案,因為沒有額外的解封包,效能也會更好。
VPC-CNI 模式: TKE 基於 CNI 和 VPC 彈性網路卡實現的容器網路能力,適用於 Pod 固定 IP,CLB 直通 Pod,Pod 直綁 EIP 等場景。該網路模式下,容器與節點分佈在同一網路平面,容器 IP 為 IPAMD 元件所分配的彈性網路卡 IP。
GlobalRouter 和 VPC-CNI 模式目前已服務 TKE 上萬企業使用者, 兩種網路模式也存在一定使用限制見:如何選擇TKE網路模式,隨著客戶使用場景的豐富, TKE 的客戶對容器網路又提出了更高的要求。
客戶對 TKE 網路方案的新需求
除了在為騰訊外部 TKE 客戶提供容器網路能力之外,騰訊雲容器服務 TKE 作為騰訊內部業務雲原生的底座,在支援騰訊內部自研業務上雲如 QQ、騰訊會議、遊戲、CDB、大資料等業務的過程中也收到以下的需求點:
- 在 VPC-CNI 模式的基礎上進一步降低資源損耗,降低網路時延,提高網路吞吐(關鍵點)
- 支援 Pod 級別的安全隔離
- 支援 CLB 直通Pod,不再經過 NodePort 轉發,提升轉發效能並擁有統一的負載均衡檢視
基於以上場景,TKE 團隊聯合底層騰訊雲 VPC 團隊、虛擬化團隊推出了新一代的獨立網路卡的 VPC-CNI 方案。
TKE新一代網路方案介紹
TKE 新一代網路方案在原有 VPC-CNI 模式單網路卡多 IP 模式的基礎上, 進階為容器直接獨享使用彈性網路卡,無縫對接騰訊雲私有網路產品的全部功能,同時在效能做了極大的提升(詳情見下文效能介紹)。
壓測資料說明
-
為了得到不同網路方案下的 QPS,這裡控制變數,讓不同網路方案的 nginx Pod 執行在同一個節點,使用 wrk 分別壓測不同 Pod,並讓服務端節點的 cpu 接近100%。
-
為了得到不同 Service 方案下的 QPS,這裡控制變數,讓 kube-proxy 和 wrk Pod 執行在同一節點,壓測相同後端,並讓客戶端節點的 cpu 接近100%。
功能簡介
新一代 VPC-CNI 模式的網路方案中,能夠在原有的網路能力中額外增加
- 支援 Pod 繫結 EIP/NAT,不再依賴節點的外網訪問能力,無須做 SNAT,可以滿足直播、遊戲、視訊會議等高併發,高頻寬外網訪問場景
- 支援 Pod 繫結安全組,實現 Pod 級別的安全隔離
- 支援基於 Pod 名稱的固定 IP,Pod 重新排程後仍能保證 IP 不變
- 支援 CLB 直通 Pod,不再經過 NodePort 轉發,提升轉發效能並擁有統一的負載均衡檢視
- 即將支援黑石 2.0物理伺服器(推薦使用, 預設使用智慧網路卡,網路效能更高)
- 即將支援基於 Pod 名稱的固定 EIP,滿足 Pod 固定外網出口
使用方法
申請新一代容器網路方案內測開通後,建立 TKE 叢集時容器網路模式選擇 VPC-CNI/Pod 獨立網路卡模式即可:
實現原理簡介
新一代方案在原有 VPC-CNI 模式的基礎上擴充套件,依託於彈性網路卡,將繫結到節點的彈性網路卡通過 CNI 配置到容器網路名稱空間,實現容器直接獨享使用彈性網路卡。
您可以關注騰訊雲原生公眾號,後續將會推送 TKE 新一代網路方案實現的技術細節。
當前內測階段使用限制
- 僅支援部分 S5 的機型使用該網路模式。
- 節點上執行的 Pod 數量限制為節點核數的5倍。
- 僅支援新叢集,存量 TKE 叢集暫不支援變更網路方案。
TKE新一代網路方案內測邀請
我們誠摯邀請您參與騰訊雲下一容器獨立網路卡網路方案產品能力的內測, 您可以通過以下連結提交內測申請:https://cloud.tencent.com/apply/p/85p1zs6x777
【騰訊雲原生】雲說新品、雲研新術、雲遊新活、雲賞資訊,掃碼關注同名公眾號,及時獲取更多幹貨!!