本技術(shù)涉及流量處理,尤其涉及一種spark作業(yè)流量控制方法、系統(tǒng)及裝置。
背景技術(shù):
1、目前流量控制方案比較多,比如istio、kubernetes?networkpolicy等等,istio和kubernetes?networkpolicy是兩種不同的網(wǎng)絡(luò)控制工具,分別提供不同的流量控制能力。他們的主要差異在于istio是一個服務(wù)網(wǎng)格(service?mesh)解決方案,而kubernetesnetworkpolicy是kubernetes集群內(nèi)部的網(wǎng)絡(luò)策略。當前主流流量控制方案主要用于解決服務(wù)與服務(wù)之間的流量,但是對于sparkjob類任務(wù)執(zhí)行過程中的流量管控無法提供解決方案,也無法解決任務(wù)執(zhí)行過程中不同階段的細粒度流量監(jiān)控和管控。
2、執(zhí)行spark任務(wù)常用的兩種方式為spark-submit和javaapi。生產(chǎn)部署與發(fā)布時通常使用spark-submit腳本進行提交。開發(fā)針對各個不同業(yè)務(wù)需求的spark業(yè)務(wù)jar包,通過spark-submit腳本提交到spark集群環(huán)境執(zhí)行。其中,開發(fā)業(yè)務(wù)jar包包含如下幾步:初始化spark基礎(chǔ)環(huán)境代碼;讀取數(shù)據(jù)源操作代碼;業(yè)務(wù)邏輯轉(zhuǎn)換代碼;數(shù)據(jù)結(jié)果寫出操作代碼;關(guān)閉spark?session代碼。
3、然而,這樣的操作模式在處理異常情況時會增加復雜性和人工成本。異常情況主要有兩種:業(yè)務(wù)邏輯問題和spark基礎(chǔ)環(huán)境問題。當異常為業(yè)務(wù)邏輯問題時,需要查看業(yè)務(wù)邏輯代碼和spark基礎(chǔ)環(huán)境代碼,這增加了問題排查的難度和時間。如果有很多業(yè)務(wù)包,這樣的操作將大大增加人力工作量,從而增加企業(yè)成本。
4、有鑒于此,如何提供一種spark作業(yè)流量控制方法,解決業(yè)務(wù)代碼與spark執(zhí)行基礎(chǔ)代碼的分離問題,減少工作量和人工成本,成為當前亟需解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供一種spark作業(yè)流量控制方法,一種spark作業(yè)流量控制系統(tǒng),一種spark作業(yè)流量控制裝置,一種電子設(shè)置以及一種計算機存儲介質(zhì),用于解決業(yè)務(wù)代碼與spark執(zhí)行基礎(chǔ)代碼的分離的問題。
2、在本技術(shù)實施例的第一方面,提供一種spark作業(yè)流量控制方法,包括:
3、在新業(yè)務(wù)容器組被創(chuàng)建的情況下,webhook會在所述新業(yè)務(wù)容器組中注入agent容器和wasmplug-in容器,且通過adapter收集和管理所述新業(yè)務(wù)容器組的pod信息,構(gòu)建業(yè)務(wù)容器組拓撲關(guān)系,其中,流量控制器中包括wehook和adapter;
4、在運行過程中,通過wasm?plug-in容器劫持業(yè)務(wù)容器的所有網(wǎng)絡(luò)流量,提取網(wǎng)絡(luò)流量中攜帶的原始流量連接信息,并發(fā)送至agent容器,其中,所述原始流量連接信息中攜帶有源地址和目標地址;所述目標流量連接信息的數(shù)據(jù)格式統(tǒng)一且包含足夠的上下文信息;
5、通過agent容器,對所述原始流量連接信息進行重構(gòu),得到目標流量連接信息,并將所述目標流量連接信息發(fā)送至adapter進行決策;
6、adapter基于所述目標流量連接信息,生成流量控制策略,結(jié)合當前處理階段,對所述目標流量連接信息進行處理,生成流量處理指令,并將所述流量處理指令通過agent傳遞給wasmplug-in容器,通過wasmplug-in容器執(zhí)行流量處理決策,確定是否允許流量通過,其中,所述流量控制策略中攜帶有業(yè)務(wù)容器組關(guān)系和白名單系統(tǒng)。
7、在本技術(shù)實施例的第二方面,提供一種spark作業(yè)流量控制系統(tǒng),包括流量控制器、agent容器和wasm?plug-in容器,其中,
8、所述流量控制器,包括wehook和adapter,用于在所述新業(yè)務(wù)容器組中注入agent容器和wasmplug-in容器,生成流量控制策略以及管理業(yè)務(wù)容器組;
9、所述agent容器,用于接收wasmplug-in發(fā)送的原始流量連接信息,通過對所述原始流量連接信息進行重構(gòu),得到目標流量連接信息,并發(fā)送至adapter進行決策;以及接收和執(zhí)行來自adapter的流量處理指令,并將所述流量處理指令轉(zhuǎn)換為具體的流量處理決策;
10、所述wasm?plug-in容器,用于通過底層網(wǎng)絡(luò)鉤子機制,劫持業(yè)務(wù)容器的所有入站流量和出站流量,提取網(wǎng)絡(luò)流量中攜帶的原始流量連接信息,并發(fā)送至agent容器進行處理;以及執(zhí)行流量處理決策,確定是否允許流量通過。
11、在本技術(shù)實施例的第三方面,提供一種spark作業(yè)流量控制裝置,包括:
12、注入模塊,被配置為在新業(yè)務(wù)容器組被創(chuàng)建的情況下,webhook會在所述新業(yè)務(wù)容器組中注入agent容器和wasm?plug-in容器,且通過adapter收集和管理所述新業(yè)務(wù)容器組的pod信息,構(gòu)建業(yè)務(wù)容器組拓撲關(guān)系,其中,流量控制器中包括wehook和adapter;
13、提取模塊,被配置為在運行過程中,通過wasmplug-in容器劫持業(yè)務(wù)容器的所有網(wǎng)絡(luò)流量,提取網(wǎng)絡(luò)流量中攜帶的原始流量連接信息,并發(fā)送至agent容器,其中,所述原始流量連接信息中攜帶有源地址和目標地址;所述目標流量連接信息的數(shù)據(jù)格式統(tǒng)一且包含足夠的上下文信息;
14、重構(gòu)模塊,被配置為通過agent容器,對所述原始流量連接信息進行重構(gòu),得到目標流量連接信息,并將所述目標流量連接信息發(fā)送至adapter進行決策;
15、生成模塊,被配置為adapter基于所述目標流量連接信息,生成流量控制策略,結(jié)合當前處理階段,對所述目標流量連接信息進行處理,生成流量處理指令,并將所述流量處理指令通過agent傳遞給wasm?plug-in容器,通過wasm?plug-in容器執(zhí)行流量處理決策,確定是否允許流量通過,其中,所述流量控制策略中攜帶有業(yè)務(wù)容器組關(guān)系和白名單系統(tǒng)。
16、在本技術(shù)實施例的第四方面,提供了一種計算設(shè)備,包括:
17、存儲器和處理器;
18、所述存儲器用于存儲計算機可執(zhí)行指令,所述處理器用于執(zhí)行所述計算機可執(zhí)行指令,該計算機可執(zhí)行指令被處理器執(zhí)行時實現(xiàn)上述spark作業(yè)流量控制方法的步驟。
19、根據(jù)本技術(shù)實施例的第五方面,提供了一種計算機可讀存儲介質(zhì),其存儲有計算機可執(zhí)行指令,該指令被處理器執(zhí)行時實現(xiàn)上述spark作業(yè)流量控制方法的步驟。
20、本技術(shù)提供了一種spark作業(yè)流量控制方法,包括:首先,在新業(yè)務(wù)容器組被創(chuàng)建的情況下,webhook會在所述新業(yè)務(wù)容器組中注入agent容器和wasm?plug-in容器,且通過adapter收集和管理所述新業(yè)務(wù)容器組的pod信息,構(gòu)建業(yè)務(wù)容器組拓撲關(guān)系,其中,流量控制器中包括wehook和adapter;然后,在運行過程中,通過wasm?plug-in容器劫持業(yè)務(wù)容器的所有網(wǎng)絡(luò)流量,提取網(wǎng)絡(luò)流量中攜帶的原始流量連接信息,并發(fā)送至agent容器,其中,所述原始流量連接信息中攜帶有源地址和目標地址;所述目標流量連接信息的數(shù)據(jù)格式統(tǒng)一且包含足夠的上下文信息;其次,通過agent容器,對所述原始流量連接信息進行重構(gòu),得到目標流量連接信息,并將所述目標流量連接信息發(fā)送至adapter進行決策;最后,adapter基于所述目標流量連接信息,生成流量控制策略,結(jié)合當前處理階段,對所述目標流量連接信息進行處理,生成流量處理指令,并將所述流量處理指令通過agent傳遞給wasmplug-in容器,通過wasmplug-in容器執(zhí)行流量處理決策,確定是否允許流量通過,其中,所述流量控制策略中攜帶有業(yè)務(wù)容器組關(guān)系和白名單系統(tǒng)。
21、應(yīng)用本技術(shù)實施例提供的一種spark作業(yè)流量控制方法,具有以下有益效果:
22、一方面是安全與可靠性。系統(tǒng)的安全性通過多層防護機制實現(xiàn)。首先,容器注入確保了控制組件的完整性。其次,adapter的精確管理確保了容器組關(guān)系和白名單的準確性。同時,系統(tǒng)能夠及時識別和阻止非法流量,特別是在數(shù)據(jù)處理的關(guān)鍵階段。在可靠性方面,系統(tǒng)實現(xiàn)了狀態(tài)持久化、故障恢復、性能優(yōu)化和實時監(jiān)控等機制,確保了流量控制的穩(wěn)定性和可靠性。
23、另一方面是擴展性。本技術(shù)實施例具有良好的擴展性。通過webhook的自動注入機制,可以輕松地將流量控制能力擴展到新創(chuàng)建的業(yè)務(wù)容器組。adapter的容器組管理和白名單系統(tǒng)支持動態(tài)更新,能夠適應(yīng)業(yè)務(wù)規(guī)模的變化。同時,系統(tǒng)預(yù)留了與其他安全系統(tǒng)集成的接口,支持未來功能的擴展和策略的演進。這種設(shè)計確保了系統(tǒng)能夠隨著業(yè)務(wù)需求的變化而持續(xù)發(fā)展。
24、通過上述說明僅是本技術(shù)技術(shù)方案的概述,為了能夠更清楚了解本技術(shù)的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本技術(shù)的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本技術(shù)的具體實施方式。