隨着容器技術的發展成熟,越來越多的組件遷移到容器,在技術遷移過程中,數據庫,游戲,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
【騰訊雲原生】雲說新品、雲研新術、雲游新活、雲賞資訊,掃碼關注同名公眾號,及時獲取更多干貨!!