Kubernetes 已經(jīng)成為容器管理領(lǐng)域的事實(shí)標準,而網(wǎng)絡(luò )系統是 Kubernetes 核心部分,隨著(zhù)越來(lái)越多的業(yè)務(wù)部署在 Kubernetes,對容器網(wǎng)絡(luò )也提出了一些新的需求
上述需求沖擊了 iptables,IPVS 等傳統防火墻,負載均衡器技術(shù)。也促使我們思考容器網(wǎng)絡(luò )訪(fǎng)問(wèn)鏈路能否不依賴(lài)于節點(diǎn),進(jìn)而縮短容器訪(fǎng)問(wèn)鏈路,提升網(wǎng)絡(luò )性能
eBPF 是一項革命性技術(shù),它可以以一種安全的方式在內核中許多 hook 點(diǎn)執行程序,該項技術(shù)可編程能力強,并且也無(wú)需維護內核模塊,可維護性好,該項技術(shù)為滿(mǎn)足上述需求提供了可能。 則是基于 eBPF 技術(shù)的容器網(wǎng)絡(luò )開(kāi)源項目,提供了網(wǎng)絡(luò )互通,服務(wù)負載均衡,安全和可觀(guān)測性等解決方案
由此,騰訊云容器服務(wù) TKE 基于 Cilium 和 eBPF 實(shí)現了獨立網(wǎng)卡模式下的高性能 ClusterIP Service 方案。TKE 致力于提供更高性能、更安全和更易用的容器網(wǎng)絡(luò ),也因此會(huì )不斷關(guān)注 Cilium 等前沿的容器網(wǎng)絡(luò )技術(shù)方案,后續會(huì )推出更多更完善的 Cilium 產(chǎn)品化能力。
TKE 于去年推出了新一代容器網(wǎng)絡(luò )方案,該方案實(shí)現了一個(gè) Pod 獨占一張彈性網(wǎng)卡,不再經(jīng)過(guò)節點(diǎn)網(wǎng)絡(luò )協(xié)議棧(default namespace)。而當前的 kube-proxy 實(shí)現 ClusterIP 的方案都依賴(lài)于在節點(diǎn)側的網(wǎng)絡(luò )協(xié)議棧里設置相應的 iptables 規則,也因此該方案對于獨立網(wǎng)卡方案不再適用。
其中一個(gè)解決方案便是 Cilium,Cilium 提供了基于 eBPF 的地址轉換能力,從而可支持 ClusterIP Service。但其原生方案僅支持 veth pair 和 ipvlan l3 的數據面,并不支持 Pod 完全不經(jīng)過(guò)節點(diǎn)網(wǎng)絡(luò )協(xié)議棧的數據面,因此不能原生解決獨立網(wǎng)卡 ClusterIP 的訪(fǎng)問(wèn)問(wèn)題。
TKE 由此對 Cilium 加以改造,使其支持了除原生支持的 veth 和 ipvlan l3 的第三種數據面方案,如圖(假設 pod 訪(fǎng)問(wèn) Service IP 為 172.16.0.2),數據面上,將原本掛載到節點(diǎn)側的 veth 上的 bpf 程序,掛載到 pod 內的獨立網(wǎng)卡(同時(shí)也是彈性網(wǎng)卡)上,使得 Pod 的網(wǎng)絡(luò )報文在發(fā)出的時(shí)候做 DNAT(目的地址轉換),而回報文在網(wǎng)卡接收的時(shí)候做反向 DNAT,從而支持 ClusterIP 的訪(fǎng)問(wèn)。該數據面方案 可作為一個(gè)通用方案適配 Ipvlan l2、SRIOV 等數據面場(chǎng)景。
而控制面上,將 Cilium 與 TKE 的 VPC-CNI 模式(含共享網(wǎng)卡模式和獨立網(wǎng)卡模式)深度集成,用戶(hù)無(wú)需對業(yè)務(wù)代碼邏輯做任何修改,即可使用 Cilium 的功能特性。
本文使用 wrk 工具對 Cilium 的產(chǎn)品化解決方案進(jìn)行了性能壓測,測試保證 Client Pod 和 Server Pod 分布在不同節點(diǎn)。
測試環(huán)境: TKE 集群,4 個(gè) CVM節點(diǎn),配置為 Server S5.2XLARGE8,Client S5.SMALL2。
測試數據表明, 基于 Cilium 的獨立網(wǎng)卡 ClusterIP 訪(fǎng)問(wèn)方案性能最好。在短連接場(chǎng)景下,其 QPS 相比共享網(wǎng)卡的 iptables 和 ipvs 方案提升48%和74%,相比全局路由的 iptables 和 ipvs 方案提升了62%和91%。在長(cháng)連接場(chǎng)景下,其 QPS 相比共享網(wǎng)卡的 iptables 和 ipvs 方案提升了33%和57%,而相比全局路由的 iptables 和 ipvs 方案提升了49%和66%。iptables 的性能較 ipvs 性能較好是因為測試環(huán)境中 Service 數量還不夠多,ipvs 的優(yōu)勢在于大量 Service 的場(chǎng)景。
TKE 團隊在實(shí)現 Cilium 產(chǎn)品化解決方案過(guò)程中,也發(fā)現了 Cilium 項目中一些問(wèn)題,相應的解決方案和 Cilium 支持新數據面方案將于近日以 pr 的形式整理提交給 Cilium 社區。
以上方案其實(shí)不能完全解決 ClusterIP 訪(fǎng)問(wèn)問(wèn)題,存在一類(lèi)特殊的場(chǎng)景會(huì )訪(fǎng)問(wèn)不通。這類(lèi)場(chǎng)景就是 Pod 訪(fǎng)問(wèn)的 ClusterIP,其后端包括其自身。這類(lèi)場(chǎng)景下,獨立網(wǎng)卡的 Pod 發(fā)出的網(wǎng)絡(luò )報文會(huì )直接到達 IAAS 層,不符合預期。
由于獨立網(wǎng)卡 Pod 內,其實(shí)只有兩個(gè)網(wǎng)絡(luò )設備:回環(huán)設備(lo)和彈性網(wǎng)卡,因此一個(gè)簡(jiǎn)單的思路就是在出報文之前,對自訪(fǎng)問(wèn)流量,通過(guò) bpf_redirect 調用將報文直接轉發(fā)(redirect)到回環(huán)(lo)設備?;诖?,TKE 團隊修改了 cilium 的相關(guān) bpf 代碼,提供了一個(gè)解決方案。經(jīng)過(guò)測試,該方案可以解決獨立網(wǎng)卡方案下的 ClusterIP 自訪(fǎng)問(wèn)問(wèn)題。
Cilium 項目的可調試性存在一個(gè)問(wèn)題,其 bpf 程序開(kāi)發(fā)得比較早,底層用了很多老的工具集,例如 tc,來(lái)加載 bpf 代碼。
老的 tc 基于老的內核版本(<4.15)設計的,它在加載 bpf 程序時(shí),將 bpf 程序的名字忽略了,導致 Cilium 加載的 bpf 程序都是無(wú)名字的。這影響了對代碼的理解,追蹤和調試。
對此 TKE 團隊結合較新的內核對 tc 工具進(jìn)行了修正,使得它加載 bpf 程序時(shí),會(huì )正確的傳入名字。通過(guò)這名字,可以搞清楚實(shí)際運行的 bpf 函數具體是哪一個(gè),從而提高 Cilium 的可調試性。
申請 Cilium 支持 ClusterIP 產(chǎn)品化內測開(kāi)通后,創(chuàng )建 TKE 集群時(shí)高級設置中打開(kāi)
ClusterIP 增強
即可:
本文介紹了 TKE 團隊實(shí)現的基于 Cilium 和 eBPF 的獨立網(wǎng)卡模式下高性能 ClusterIP service 方案,該方案相比當前基于 iptables 和 ipvs 的傳統網(wǎng)絡(luò )方案大量的提升了性能(33%-91%)。
顯然,Cilium 提供的能力還不止于此,其基于 eBPF 這項革命性的技術(shù),還提供了安全、可觀(guān)測性、QoS 等方面的能力,而提供更高性能、更安全和更易用的容器網(wǎng)絡(luò )正是 TKE 的服務(wù)目標,因此,后續 TKE 將會(huì )積極參與 Cilium 社區,與社區一道共同推出更強大、更完善的容器網(wǎng)絡(luò )能力。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站