加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1.?背景介紹
    • 2.?方案介紹
    • 3.?方案優(yōu)勢(shì)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

服務(wù)網(wǎng)格DPU卸載解決方案

09/18 09:26
1096
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1.?背景介紹

1.1.?業(yè)務(wù)背景

服務(wù)網(wǎng)格(Service Mesh)是微服務(wù)架構(gòu)中的一種重要技術(shù),它主要處理服務(wù)之間的通信,為服務(wù)間的信息交換提供更安全、更快速且更可靠的基礎(chǔ)設(shè)施層。服務(wù)網(wǎng)格將服務(wù)治理從業(yè)務(wù)邏輯中剝離出來,拆解為獨(dú)立的進(jìn)程,實(shí)現(xiàn)異構(gòu)系統(tǒng)的統(tǒng)一治理和增強(qiáng)網(wǎng)絡(luò)安全

一個(gè)典型的服務(wù)網(wǎng)格部署示意圖如下:

其中綠色方塊為應(yīng)用服務(wù),藍(lán)色方塊為代理。應(yīng)用服務(wù)之間通過代理進(jìn)行通信,整個(gè)服務(wù)通信形成圖中的藍(lán)色網(wǎng)絡(luò)連線,圖中所有藍(lán)色部分就形成了服務(wù)網(wǎng)格。

服務(wù)網(wǎng)格的主要特點(diǎn)包括:

  • 無侵入性:服務(wù)網(wǎng)格的設(shè)計(jì)理念是將通信和管理邏輯與業(yè)務(wù)邏輯解耦,使得業(yè)務(wù)邏輯無需關(guān)注通信細(xì)節(jié),從而實(shí)現(xiàn)了對(duì)業(yè)務(wù)代碼的無侵入性。
  • 統(tǒng)一治理:通過服務(wù)網(wǎng)格,可以實(shí)現(xiàn)對(duì)微服務(wù)架構(gòu)中所有服務(wù)的統(tǒng)一治理,包括服務(wù)發(fā)現(xiàn)、負(fù)載均衡、安全認(rèn)證、監(jiān)控和跟蹤等功能。
  • 可擴(kuò)展性:服務(wù)網(wǎng)格支持多種微服務(wù)框架和服務(wù)治理能力,能夠輕松擴(kuò)展以支持更多的服務(wù)和場(chǎng)景。

服務(wù)網(wǎng)格的架構(gòu)通常包括控制平面和數(shù)據(jù)平面,其中控制平面用于配置、管理和監(jiān)控?cái)?shù)據(jù)平面中的Sidecar代理,提供服務(wù)發(fā)現(xiàn)、負(fù)載均衡、安全認(rèn)證等功能。

數(shù)據(jù)平面主要由邊車Sidecar組成,它以輕量級(jí)的網(wǎng)絡(luò)代理形式存在,與每個(gè)微服務(wù)實(shí)例部署在同一個(gè)主機(jī)或容器中,作為服務(wù)的附屬組件運(yùn)行。邊車的主要職責(zé)是攔截和處理服務(wù)之間的通信流量,并與控制平面進(jìn)行交互,實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)、負(fù)載均衡、安全認(rèn)證、監(jiān)控和跟蹤等功能。

邊車的工作流程通常包括以下幾個(gè)步驟:

  • 攔截通信流量:邊車代理攔截服務(wù)之間的所有入站和出站請(qǐng)求和響應(yīng)。
  • 服務(wù)發(fā)現(xiàn):邊車代理向服務(wù)注冊(cè)中心注冊(cè)服務(wù)實(shí)例,并根據(jù)需要?jiǎng)討B(tài)地發(fā)現(xiàn)和管理服務(wù)實(shí)例。
  • 負(fù)載均衡:邊車代理根據(jù)配置的負(fù)載均衡算法,將請(qǐng)求分發(fā)到多個(gè)服務(wù)實(shí)例中,以提高服務(wù)的可用性和性能。
  • 安全認(rèn)證:邊車代理可以實(shí)施安全認(rèn)證策略,確保服務(wù)之間的通信是安全的。
  • 監(jiān)控和跟蹤:邊車代理收集和傳輸服務(wù)間的通信流量數(shù)據(jù),以實(shí)現(xiàn)監(jiān)控、日志記錄、錯(cuò)誤追蹤和性能調(diào)優(yōu)等功能。

綜上所述,服務(wù)網(wǎng)格是微服務(wù)架構(gòu)中的重要組成部分,它們共同為服務(wù)間的通信提供了安全、快速且可靠的基礎(chǔ)設(shè)施層,并實(shí)現(xiàn)了對(duì)業(yè)務(wù)代碼的無侵入性服務(wù)治理。

1.2.?問題與挑戰(zhàn)

在微服務(wù)架構(gòu)中引入服務(wù)網(wǎng)格確實(shí)可以帶來諸多好處,如簡(jiǎn)化服務(wù)治理、提高安全性和可觀察性等,但同時(shí)也伴隨著一系列問題和挑戰(zhàn)。以下是幾個(gè)主要方面:

  • 邊車帶來的資源開銷:每個(gè)微服務(wù)應(yīng)用都都需要運(yùn)行一個(gè)邊車代理,實(shí)際部署是每個(gè)POD部署一個(gè)邊車容器。邊車容器需要額外的計(jì)算資源來處理服務(wù)間的通信,默認(rèn)情況下每個(gè)邊車容器占用0.2個(gè)CPU核。假設(shè)一臺(tái)服務(wù)器運(yùn)行了60個(gè)POD,那么邊車容器將額外占用12個(gè)CPU核。
  • 業(yè)務(wù)轉(zhuǎn)發(fā)時(shí)延增加:應(yīng)用程序的每個(gè)數(shù)據(jù)包都必須通過邊車容器,數(shù)據(jù)包在應(yīng)用程序和內(nèi)核之間往返多次,如下對(duì)比是單個(gè)pod進(jìn)或出增加的時(shí)延。

如圖所示,右側(cè)的是引入服務(wù)網(wǎng)格的方案,Pod內(nèi)多了邊車容器,相比左側(cè)未引入服務(wù)網(wǎng)格的方案,數(shù)據(jù)包增加了內(nèi)核往返次數(shù),增加了時(shí)延。

通過上述分析可以看出,在微服務(wù)架構(gòu)中引入服務(wù)網(wǎng)格確實(shí)帶來了資源開銷和轉(zhuǎn)發(fā)時(shí)延的問題。

2.?方案介紹

2.1.?整體方案架構(gòu)

服務(wù)網(wǎng)格DPU卸載解決方案將服務(wù)網(wǎng)格的sidecar邊車容器集中卸載到DPU卡上執(zhí)行,可以顯著降低服務(wù)器CPU的算力消耗。同時(shí),DPU卡高性能轉(zhuǎn)發(fā)引擎實(shí)現(xiàn)了網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能的加速,從而能夠有效降低業(yè)務(wù)時(shí)延。該方案支持和原生Istio的無縫對(duì)接,對(duì)用戶業(yè)務(wù)無侵入,可以實(shí)現(xiàn)業(yè)務(wù)的平滑遷移。

如圖所示,紅色系為本方案涉及本方案涉及部分,包括DPU卡及其提供給到主機(jī)側(cè)的SRIOV vf口、主機(jī)側(cè)CNI(istio-dpu-cni)。

業(yè)務(wù)容器的流量治理功能由DPU卡上的共享服務(wù)代理dpu-proxy提供,它由原生的邊車容器從POD中抽離出來卸載到DPU卡上。它的配置由istio-dpu-cni通過對(duì)接istio獲取并轉(zhuǎn)換為集中式配置并下發(fā)下來。流量通過DPU提供的vf口到達(dá)DPU側(cè)的dpu-proxy進(jìn)行流量治理。

此架構(gòu)的控制面仍為原生的istio,下發(fā)xDs配置給轉(zhuǎn)發(fā)面;服務(wù)網(wǎng)格CNI(istio-dpu-cni)做為DPU卡在k8s集群的接口,無縫對(duì)接istio/收集集群信息,相當(dāng)于DPU管理面給DPU組件下發(fā)配置及規(guī)則,使DPU卡可以實(shí)現(xiàn)原生的透明流量劫持以及流量治理的功能;DPU卡上的dpu-proxy做為服務(wù)網(wǎng)格的轉(zhuǎn)發(fā)面,接收配置并根據(jù)配置對(duì)流量進(jìn)行流量治理。

集群內(nèi)的主機(jī)上插入DPU卡(紅色),在主機(jī)側(cè)集群內(nèi)部署安裝服務(wù)網(wǎng)格CNI(istio-dpu-cni組件)后,istio-dpu-cni組件可無縫對(duì)接控制平面K8s及Istio獲取服務(wù)網(wǎng)格及網(wǎng)絡(luò)配置、使能DPU卡上的共享服務(wù)代理dpu-proxy及轉(zhuǎn)發(fā)引擎dataplane、下發(fā)相關(guān)的啟動(dòng)配置,主機(jī)即具有服務(wù)治理功能。之后在部署業(yè)務(wù)POD時(shí),業(yè)務(wù)添加高速網(wǎng)口vf后,提供用戶接口,使業(yè)務(wù)流量通過vf到達(dá)DPU側(cè)dpu-proxy進(jìn)行流量治理與轉(zhuǎn)發(fā)。

2.2.?方案描述

2.2.1.?主機(jī)側(cè)組件服務(wù)網(wǎng)格CNI實(shí)現(xiàn)管理平面

服務(wù)網(wǎng)格CNI(istio-dpu-cni組件)在主機(jī)側(cè)k8s集群部署,無縫對(duì)接控制平面K8s及Istio獲取配置等信息,轉(zhuǎn)換為共享式代理配置下發(fā)到DPU側(cè)的共享代理;基于DPU板卡的sriov功能,可給業(yè)務(wù)POD添加低時(shí)延高速網(wǎng)口vf及分配置IP地址;同時(shí)使能DPU側(cè)轉(zhuǎn)發(fā)引擎dataplane,給dataplane下發(fā)引流轉(zhuǎn)發(fā)配置。

如圖所示,服務(wù)網(wǎng)格CNI包括istio-dpu-controller、istio-dpu-adapter和istio-dpu-cni三個(gè)組件:

① istio-dpu-controller 使用daemonset方式部署在集群master上

主要是用于生成dpu級(jí)別的集中式服務(wù)網(wǎng)格配置,收集集群信息如pod變化、nodename等,轉(zhuǎn)換為istio的inbound和internal 配置,并下發(fā)給對(duì)應(yīng)節(jié)點(diǎn)的istio-dpu-adapter。

② istio-dpu-adapter 使用daemonset部署在每個(gè)主機(jī)節(jié)點(diǎn)上

主要是用于無縫對(duì)接原生控制平面istio,可自動(dòng)獲取配置,轉(zhuǎn)換集群內(nèi)信息把原生配置聚合為共享式服務(wù)網(wǎng)格配置下發(fā)給代理dpu-proxy。

③ istio-dpu-cni 使用daemonset部署在每個(gè)主機(jī)節(jié)點(diǎn)上

可配置網(wǎng)絡(luò)模式是underlay或者overlay,針對(duì)性下發(fā)不同的網(wǎng)絡(luò)規(guī)則;收集集群內(nèi)信息(node, ns, service, pod等),提供用戶接口可對(duì)dpu側(cè)的轉(zhuǎn)發(fā)引擎dataplane下發(fā)轉(zhuǎn)發(fā)及引流規(guī)則,使dataplane能進(jìn)行透明劫持低時(shí)延業(yè)務(wù)流量到dpu-proxy做流量治理。

除自研的CNI外,引入的開源組件為multus、sriov、spiderpool(不涉及開源組件的改動(dòng)),通過二進(jìn)制或pod的形式部署在需要的節(jié)點(diǎn)上。

2.2.2.?DPU側(cè)組件轉(zhuǎn)發(fā)引擎及代理實(shí)現(xiàn)轉(zhuǎn)發(fā)平面

如圖所示,DPU側(cè)組件包括轉(zhuǎn)發(fā)引擎dataplane和共享服務(wù)代理dpu-proxy兩個(gè)組件。在DPU卡的soc上,部署兩個(gè)容器組件實(shí)現(xiàn)服務(wù)網(wǎng)格轉(zhuǎn)發(fā)面功能,流量透明劫持及流量治理。

① 共享服務(wù)代理dpu-proxy采用容器方式部署在DPU卡的SOC上

擴(kuò)展封裝原生邊車代理istio-proxy為DPU共享服務(wù)代理dpu-proxy。它解析istio-dpu-adapter下發(fā)的動(dòng)態(tài)共享式服務(wù)網(wǎng)格配置,對(duì)進(jìn)出本機(jī)的低時(shí)延業(yè)務(wù)流量進(jìn)行治理與轉(zhuǎn)發(fā)。支持原生的四層TCP流量及七層HTTP流量治理;支持generic-proxy框架對(duì)其他七層流量進(jìn)行流量治理。

② 轉(zhuǎn)發(fā)引擎dataplane采用容器方式部署在DPU卡的SOC上

dataplane接入?yún)f(xié)議棧(內(nèi)核/用戶態(tài)),并可通過vcl共享內(nèi)存方式與共享服務(wù)代理dpu-proxy交互;接收istio-dpu-cni下發(fā)的轉(zhuǎn)發(fā)及引流規(guī)則,根據(jù)規(guī)則把流量劫持到dpu-proxy;治理過的流量按轉(zhuǎn)發(fā)規(guī)則進(jìn)行網(wǎng)絡(luò)封裝及轉(zhuǎn)發(fā);dataplane加載vf-representer,通過NP(網(wǎng)絡(luò)轉(zhuǎn)發(fā)引擎)從vf-representer口收發(fā)對(duì)應(yīng)pod內(nèi)vf口的流量。

2.2.3.?DPU共享服務(wù)代理流量轉(zhuǎn)發(fā)模型

同主機(jī)內(nèi)的業(yè)務(wù)互訪如圖(紅色),client端業(yè)務(wù)流量經(jīng)高速口vf到達(dá)DPU共享服務(wù)代理進(jìn)行服務(wù)治理后,再經(jīng)轉(zhuǎn)發(fā)引擎dataplane轉(zhuǎn)發(fā)到本主機(jī)的server端Pod。

跨主機(jī)業(yè)務(wù)互訪如圖(藍(lán)色),client端業(yè)務(wù)流量經(jīng)高速口vf到達(dá)DPU共享服務(wù)代理進(jìn)行服務(wù)治理。治理后流量到達(dá)轉(zhuǎn)發(fā)引擎dataplane,根據(jù)轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)到目標(biāo)主機(jī)的DPU上共享服務(wù)代理做inbound入口流量治理。治理后流量再經(jīng)轉(zhuǎn)發(fā)引擎dataplane轉(zhuǎn)到目標(biāo)主機(jī)的server端Pod。

3.?方案優(yōu)勢(shì)

3.1.?方案優(yōu)勢(shì)

本方案創(chuàng)新性的將服務(wù)網(wǎng)格邊車代理集中卸載到DPU上,可以帶來一系列顯著的優(yōu)勢(shì),包括以下幾個(gè)方面:

①顯著降低服務(wù)器開銷:

  • 資源消耗減少:傳統(tǒng)的邊車模式需要在每個(gè)服務(wù)容器旁邊部署一個(gè)邊車代理,這會(huì)導(dǎo)致大量的資源消耗(如CPU、內(nèi)存)。通過將代理集中部署在DPU上,可以消除這些額外的資源消耗,使主機(jī)側(cè)的資源更加專注于業(yè)務(wù)邏輯處理。
  • 優(yōu)化資源利用率:DPU作為專門的硬件加速單元,能夠更高效地處理網(wǎng)絡(luò)流量和加密解密等任務(wù),從而釋放主機(jī)CPU資源,提高整體系統(tǒng)的資源利用率。

②極致的低時(shí)延:

  • 用戶態(tài)協(xié)議棧Bypass內(nèi)核:通過將網(wǎng)絡(luò)處理移至DPU的用戶態(tài)協(xié)議棧,繞過傳統(tǒng)的內(nèi)核態(tài)處理,可以顯著減少數(shù)據(jù)包在內(nèi)核與用戶空間之間切換的開銷,從而大幅降低網(wǎng)絡(luò)延遲。
  • 服務(wù)網(wǎng)格快路徑:自研的服務(wù)網(wǎng)格快路徑技術(shù)可以進(jìn)一步優(yōu)化網(wǎng)絡(luò)路徑,減少不必要的處理步驟,確保數(shù)據(jù)包能夠以最短的路徑和最快的速度在網(wǎng)絡(luò)中傳輸。

③即插即用:

  • 無侵入式服務(wù)治理:集中式代理模式允許在不修改現(xiàn)有應(yīng)用代碼的情況下實(shí)現(xiàn)服務(wù)治理功能,如流量管理、安全控制等。這使得新服務(wù)的部署和現(xiàn)有服務(wù)的升級(jí)變得更加簡(jiǎn)單快捷。
  • 靈活部署:DPU作為獨(dú)立的硬件組件,可以輕松地集成到現(xiàn)有的服務(wù)器架構(gòu)中,實(shí)現(xiàn)即插即用。這種靈活性使得企業(yè)可以根據(jù)實(shí)際需求快速調(diào)整網(wǎng)絡(luò)架構(gòu)和服務(wù)部署策略。

④增強(qiáng)的安全性和隔離性:

  • 服務(wù)隔離:通過DPU上的集中式代理,可以減少不同服務(wù)和邊車容器之間的干擾,防止?jié)撛诘陌踩L(fēng)險(xiǎn)。

綜上所述,將邊車代理集中卸載到DPU上是一種高效、靈活且安全的網(wǎng)絡(luò)架構(gòu)優(yōu)化方案,能夠顯著降低開銷、提升系統(tǒng)的性能并增強(qiáng)安全性和隔離性。

3.2.?未來與展望

服務(wù)網(wǎng)格DPU卸載解決方案,作為云原生時(shí)代的一項(xiàng)創(chuàng)新技術(shù),其核心價(jià)值在于顯著優(yōu)化了邊車代理模式所帶來的資源消耗問題,并大幅降低了業(yè)務(wù)請(qǐng)求在微服務(wù)間的轉(zhuǎn)發(fā)時(shí)延。

隨著云原生技術(shù)和微服務(wù)架構(gòu)在各行各業(yè)的深入滲透,特別是在云計(jì)算、金融科技、物聯(lián)網(wǎng)邊緣計(jì)算等領(lǐng)域,對(duì)于高效、可靠、可擴(kuò)展的系統(tǒng)架構(gòu)需求日益迫切。服務(wù)網(wǎng)格DPU卸載解決方案正是順應(yīng)這一趨勢(shì),憑借其卓越的性能提升和資源優(yōu)化能力,展現(xiàn)出了極為廣闊的應(yīng)用前景和市場(chǎng)空間。

更為重要的是,該方案和技術(shù)正處于快速發(fā)展和不斷完善的階段。隨著DPU技術(shù)的不斷創(chuàng)新和服務(wù)網(wǎng)格框架的持續(xù)演進(jìn),未來將有更多高級(jí)功能被集成到DPU中,如更精細(xì)的流量管理、增強(qiáng)的安全策略執(zhí)行、智能的數(shù)據(jù)處理加速等。服務(wù)網(wǎng)格DPU卸載方案將吸引更多行業(yè)巨頭、初創(chuàng)企業(yè)以及技術(shù)開發(fā)者加入DPU生態(tài),共同探索和實(shí)踐DPU技術(shù)的潛力,推動(dòng)其標(biāo)準(zhǔn)化、生態(tài)化的發(fā)展進(jìn)程。

總之,服務(wù)網(wǎng)格DPU卸載解決方案作為云原生和微服務(wù)架構(gòu)下的技術(shù)探索,展現(xiàn)出了巨大的潛力,有望成為推動(dòng)云原生技術(shù)普及和深化的關(guān)鍵力量,為數(shù)字化轉(zhuǎn)型注入新的活力和動(dòng)力。

本方案來自于中科馭數(shù)軟件研發(fā)團(tuán)隊(duì),團(tuán)隊(duì)核心由一群在云計(jì)算、數(shù)據(jù)中心架構(gòu)、高性能計(jì)算領(lǐng)域深耕多年的業(yè)界資深架構(gòu)師和技術(shù)專家組成,不僅擁有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn),還對(duì)行業(yè)趨勢(shì)具備敏銳的洞察力,該團(tuán)隊(duì)致力于探索、設(shè)計(jì)、開發(fā)、推廣可落地的高性能云計(jì)算解決方案,幫助最終客戶加速數(shù)字化轉(zhuǎn)型,提升業(yè)務(wù)效能,同時(shí)降低運(yùn)營(yíng)成本。

中科馭數(shù)

中科馭數(shù)

中科馭數(shù)致力于專用處理器研發(fā),為智能計(jì)算提供芯片和產(chǎn)品解決方案。圍繞DPU芯片打造了智能網(wǎng)卡系列產(chǎn)品和解決方案。

中科馭數(shù)致力于專用處理器研發(fā),為智能計(jì)算提供芯片和產(chǎn)品解決方案。圍繞DPU芯片打造了智能網(wǎng)卡系列產(chǎn)品和解決方案。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜