隨著容器技術(shù)的發(fā)展成熟,越來(lái)越多的組件遷移到容器,在技術(shù)遷移過(guò)程中,數(shù)據(jù)庫(kù),游戲,AI這些組件對(duì)容器網(wǎng)絡(luò)性能(時(shí)延,吞吐,穩(wěn)定性)提出了更高的要求。為了得到更優(yōu)的時(shí)延和吞吐表現(xiàn),各大云廠商都在致力于縮短節(jié)點(diǎn)內(nèi)容器的網(wǎng)絡(luò)訪問(wèn)鏈路,讓數(shù)據(jù)包能盡可能快地轉(zhuǎn)發(fā)到容器網(wǎng)卡。
騰訊云容器服務(wù)TKE借助智能網(wǎng)卡推出新一代容器網(wǎng)絡(luò)方案,實(shí)現(xiàn)了一個(gè)Pod獨(dú)占一張彈性網(wǎng)卡,不再經(jīng)過(guò)節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)議棧(default namespace),極大縮短容器訪問(wèn)鏈路和訪問(wèn)時(shí)延,并使PPS可以達(dá)到整機(jī)上限?;谛乱淮萜骶W(wǎng)絡(luò)方案,短鏈接場(chǎng)景下,QPS相比之前容器網(wǎng)絡(luò)方案(策略路由方案,網(wǎng)橋方案)提升50%-70%;長(zhǎng)鏈接場(chǎng)景下QPS提升40%-60%。
由于不再經(jīng)過(guò)節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)議棧,傳統(tǒng)基于iptables和IPVS的ClusterIP service訪問(wèn)方案不能直接適用于新方案。為了同時(shí)能實(shí)現(xiàn)Pod可以直接訪問(wèn)ClusterIP service,TKE推出share-NS IPVS方案,使得在容器網(wǎng)絡(luò)命名空間下,也可以訪問(wèn)到節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)議棧的IPVS規(guī)則;同時(shí),配合CLB直通Pod,最終實(shí)現(xiàn)了完整意義上的彈性網(wǎng)卡直通。
新一代容器網(wǎng)絡(luò)方案實(shí)現(xiàn)了針對(duì)ClusterIP service短鏈接場(chǎng)景下,QPS相比iptables方案提升40%-60%,IPVS方案提升70%-90%;長(zhǎng)鏈接場(chǎng)景下,QPS相比iptables方案提升30%-50%,IPVS方案提升50%-70%。
新一代容器網(wǎng)絡(luò)方案推出背景
在介紹新一代容器網(wǎng)絡(luò)方案前,先和大家介紹一下TKE現(xiàn)有網(wǎng)絡(luò)方案,和現(xiàn)有網(wǎng)絡(luò)方案面臨的挑戰(zhàn),以及客戶(hù)新訴求。
現(xiàn)有網(wǎng)絡(luò)方案介紹
騰訊云容器服務(wù)TKE目前提供了兩種容器網(wǎng)絡(luò)模式供用戶(hù)選擇使用。
GlobalRouter模式:基于vpc實(shí)現(xiàn)的全局路由模式,目前是TKE默認(rèn)網(wǎng)絡(luò)方案。該模式依托于vpc底層路由能力,不需要在節(jié)點(diǎn)上配置vxlan等overlay設(shè)備,就可實(shí)現(xiàn)容器網(wǎng)絡(luò)和vpc網(wǎng)絡(luò)的互訪,并且相比于calico/flannel等網(wǎng)絡(luò)方案,沒(méi)有額外的解封包,性能也會(huì)更好。
VPC-CNI模式:TKE基于CNI和VPC彈性網(wǎng)卡實(shí)現(xiàn)的容器網(wǎng)絡(luò)能力,適用于Pod固定IP,CLB直通Pod,Pod直綁EIP等場(chǎng)景。該網(wǎng)絡(luò)模式下,容器與節(jié)點(diǎn)分布在同一網(wǎng)絡(luò)平面,容器IP為IPAMD組件所分配的彈性網(wǎng)卡IP。
GlobalRouter和VPC-CNI模式目前已服務(wù)TKE上萬(wàn)企業(yè)用戶(hù),兩種網(wǎng)絡(luò)模式也存在一定使用限制?!揪唧w可查看官方文檔如何選擇TKE網(wǎng)絡(luò)模式:https://cloud.tencent.com/document/product/457/41636】
隨著客戶(hù)使用場(chǎng)景的豐富,TKE的客戶(hù)對(duì)容器網(wǎng)絡(luò)又提出了更高的要求。
客戶(hù)對(duì)TKE網(wǎng)絡(luò)方案的新需求
除了在為騰訊外部客戶(hù)提供容器網(wǎng)絡(luò)能力外,騰訊云容器服務(wù)TKE作為騰訊內(nèi)部業(yè)務(wù)云原生的底座,在支持騰訊內(nèi)部自研業(yè)務(wù)上云如QQ、騰訊會(huì)議、游戲、CDB、大數(shù)據(jù)等業(yè)務(wù)的過(guò)程中也收到以下的需求點(diǎn):
·在VPC-CNI模式的基礎(chǔ)上進(jìn)一步降低資源損耗,降低網(wǎng)絡(luò)時(shí)延,提高網(wǎng)絡(luò)吞吐(關(guān)鍵點(diǎn))
·支持Pod級(jí)別的安全隔離
·支持CLB直通Pod,不再經(jīng)過(guò)NodePort轉(zhuǎn)發(fā),提升轉(zhuǎn)發(fā)性能并擁有統(tǒng)一的負(fù)載均衡視圖
基于以上場(chǎng)景,TKE團(tuán)隊(duì)聯(lián)合底層騰訊云VPC團(tuán)隊(duì)、虛擬化團(tuán)隊(duì)推出了新一代的獨(dú)立網(wǎng)卡的VPC-CNI方案。
TKE新一代網(wǎng)絡(luò)方案介紹
TKE新一代網(wǎng)絡(luò)方案在原有VPC-CNI模式單網(wǎng)卡多IP模式的基礎(chǔ)上,進(jìn)階為容器直接獨(dú)享使用彈性網(wǎng)卡,無(wú)縫對(duì)接騰訊云私有網(wǎng)絡(luò)產(chǎn)品的全部功能,同時(shí)在性能做了極大的提升。
壓測(cè)數(shù)據(jù)說(shuō)明
為了得到不同網(wǎng)絡(luò)方案下的QPS,這里控制變量,讓不同網(wǎng)絡(luò)方案的nginx Pod運(yùn)行在同一個(gè)節(jié)點(diǎn),使用wrk分別壓測(cè)不同Pod,并讓服務(wù)端節(jié)點(diǎn)的cpu接近100%。
為了得到不同Service方案下的QPS,這里控制變量,讓kube-proxy和wrk Pod運(yùn)行在同一節(jié)點(diǎn),壓測(cè)相同后端,并讓客戶(hù)端節(jié)點(diǎn)的cpu接近100%。
功能簡(jiǎn)介
新一代VPC-CNI模式的網(wǎng)絡(luò)方案中,能夠在原有的網(wǎng)絡(luò)能力中額外增加
1.支持Pod綁定EIP/NAT,不再依賴(lài)節(jié)點(diǎn)的外網(wǎng)訪問(wèn)能力,無(wú)須做SNAT,可以滿(mǎn)足直播、游戲、視頻會(huì)議等高并發(fā),高帶寬外網(wǎng)訪問(wèn)場(chǎng)景
2.支持Pod綁定安全組,實(shí)現(xiàn)Pod級(jí)別的安全隔離
3.支持基于Pod名稱(chēng)的固定IP,Pod重新調(diào)度后仍能保證IP不變
4.支持CLB直通Pod,不再經(jīng)過(guò)NodePort轉(zhuǎn)發(fā),提升轉(zhuǎn)發(fā)性能并擁有統(tǒng)一的負(fù)載均衡視圖
5.即將支持黑石2.0物理服務(wù)器(推薦使用,默認(rèn)使用智能網(wǎng)卡,網(wǎng)絡(luò)性能更高)
6.即將支持基于Pod名稱(chēng)的固定EIP,滿(mǎn)足Pod固定外網(wǎng)出口
使用方法
申請(qǐng)新一代容器網(wǎng)絡(luò)方案內(nèi)測(cè)開(kāi)通后,創(chuàng)建TKE集群時(shí)容器網(wǎng)絡(luò)模式選擇VPC-CNI/Pod獨(dú)立網(wǎng)卡模式即可:
實(shí)現(xiàn)原理簡(jiǎn)介
新一代方案在原有VPC-CNI模式的基礎(chǔ)上擴(kuò)展,依托于彈性網(wǎng)卡,將綁定到節(jié)點(diǎn)的彈性網(wǎng)卡通過(guò)CNI配置到容器網(wǎng)絡(luò)命名空間,實(shí)現(xiàn)容器直接獨(dú)享使用彈性網(wǎng)卡。
當(dāng)前內(nèi)測(cè)階段使用限制
1.僅支持部分S5的機(jī)型使用該網(wǎng)絡(luò)模式。
2.節(jié)點(diǎn)上運(yùn)行的Pod數(shù)量限制為節(jié)點(diǎn)核數(shù)的5倍。
3.僅支持新集群,存量TKE集群暫不支持變更網(wǎng)絡(luò)方案。