新四季網

基於Kubernetes系統對接工作流引擎的作業調度方法和裝置與流程

2023-05-30 09:56:16


本發明涉及數據處理技術領域,特別是指一種基於kubernetes系統對接工作流引擎的作業調度方法和裝置。



背景技術:

工作流引擎是一個管理業務流程或者數據分析流程作業的應用,它管理和監控作業執行的狀態。可以按照作業流程定義將作業拆分成若干個有先後執行順序的可執行單元,分派可執行單元給相應的計算資源執行,並監控可執行單元的執行結果,直到整個作業執行完成或失敗退出。

在工作流引擎應用中,會大量存在可執行單元並發執行的場景,比如多個作業同時運行或者單個作業中並發執行可執行單元。相對於單機執行,如果將可執行單元的執行調度到一個分布式計算集群上一方面可以大大提高作業執行效率,另一方面可以有效管理資源使用效率,所以很多工作流引擎應用都需要開發插件來和後臺分布式計算集群集成。並且,由於容器(pod)技術的大力發展,將可執行單元封裝成單獨容器並分配相應的資源加以執行也逐漸成為趨勢。kubernetes作為一個容器集群管理系統也成為工作流引擎與之對接的常見分布式計算集群。但是kubernetes原生系統裡針對這種場景缺乏一個好的實現,使得工作流引擎無法與kubernetes協同工作完成可執行單元的並發執行工作,降低了作業執行效率和資源使用效率。



技術實現要素:

有鑑於此,本發明的目的在於提出一種能夠有效提升作業執行效率和資源使用效率的基於kubernetes系統對接工作流引擎的作業調度方法和裝置。

基於上述目的本發明提供的一種基於kubernetes系統對接工作流引擎的作業調度方法,其中,工作流引擎將作業拆分成若干個具有執行順序的可執行單元;所述方法包括:

接收工作流引擎提交的可執行單元;

根據所述可執行單元的參數,生成用於供kubernetes系統創建容器的配置文件;

將所述配置文件發送至kubernetes系統,使kubernetes系統根據所述配置文件創建容器並執行所述可執行單元;

接收kubernetes系統返回的關於所述可執行單元的第一結果信息;

對所述第一結果信息進行轉譯,生成能夠被工作流引擎識別的第二結果信息,並將所述第二結果信息發送至工作流引擎;

若所述第二結果信息為執行成功,則接收工作流引擎按所述執行順序提交的下一個可執行單元。

在一些實施方式中,所述方法還包括:

若所述第二結果信息為執行失敗,則接收工作流引擎提交的容器刪除請求,並將所述容器刪除請求發送至kubernetes系統;

接收kubernetes系統返回的容器刪除信息,並將所述容器刪除信息發送至工作流引擎,使工作流引擎中斷所述作業。

在一些實施方式中,所述則接收工作流引擎提交的容器刪除請求,並將所述容器刪除請求發送至kubernetes系統的步驟之前,還包括:

接收工作流引擎提交的錯誤日誌查詢請求,並將所述錯誤日誌查詢請求發送至kubernetes系統;

接收kubernetes系統返回的容器執行錯誤日誌,並將所述容器執行錯誤日誌發送至工作流引擎。

在一些實施方式中,所述將所述配置文件發送至kubernetes系統,使kubernetes系統根據所述配置文件創建容器並執行所述可執行單元之後,還包括:

向kubernetes系統發出監聽請求,用以在所述可執行單元的執行狀態發生變化時,獲取kubernetes系統返回的執行狀態信息;

將符合預設條件的所述執行狀態信息作為所述第一結果信息。

在一些實施方式中,所述將所述配置文件發送至kubernetes系統,使kubernetes系統根據所述配置文件創建容器並執行所述可執行單元之後,還包括:

接收工作流引擎發送的查詢指令;

向kubernetes系統獲取所述可執行單元的執行狀態信息,並將所述執行狀態信息發送至工作流引擎。

另一方面,本發明還提供了一種基於kubernetes系統對接工作流引擎的作業調度裝置,包括:

第一接收模塊,用於接收工作流引擎提交的可執行單元;以及,若所述第二結果信息為執行成功,則接收工作流引擎按所述執行順序提交的下一個可執行單元;

配置文件生成模塊,用於根據所述可執行單元的參數,生成用於供kubernetes系統創建容器的配置文件;

第一發送模塊,用於將所述配置文件發送至kubernetes系統,使kubernetes系統根據所述配置文件創建容器並執行所述可執行單元;

第二接收模塊,用於接收kubernetes系統返回的關於所述可執行單元的第一結果信息;

第二發送模塊,用於對所述第一結果信息進行轉譯,生成能夠被工作流引擎識別的第二結果信息,並將所述第二結果信息發送至工作流引擎。

在一些實施方式中,所述第一接收模塊還用於:若所述第二結果信息為執行失敗,則接收工作流引擎提交的容器刪除請求;所述第一發送模塊還用於:將所述容器刪除請求發送至kubernetes系統;

相應的,所述第二接收模塊還用於:接收kubernetes系統返回的容器刪除信息;所述第二發送模塊還用於:將所述容器刪除信息發送至工作流引擎,使工作流引擎中斷所述作業。

在一些實施方式中,所述第一接收模塊還用於:接收工作流引擎提交的錯誤日誌查詢請求;所述第一發送模塊還用於:將所述錯誤日誌查詢請求發送至kubernetes系統;

相應的,所述第二接收模塊還用於:接收kubernetes系統返回的容器執行錯誤日誌;所述第二發送模塊還用於:將所述容器執行錯誤日誌發送至工作流引擎。

在一些實施方式中,所述裝置還包括:監聽模塊,用於向kubernetes系統發出監聽請求,用以在所述可執行單元的執行狀態發生變化時,獲取kubernetes系統返回的執行狀態信息,並將符合預設條件的所述執行狀態信息作為所述第一結果信息。

在一些實施方式中,所述裝置還包括:查詢模塊,用於接收工作流引擎發送的查詢指令;向kubernetes系統獲取所述可執行單元的執行狀態信息,並將所述執行狀態信息發送至工作流引擎。

從上面所述可以看出,本發明提供的基於kubernetes系統對接工作流引擎的作業調度方法和裝置,使得工作流引擎將可執行單元分配給kubernetes系統,由kubernetes系統根據可執行單元的資源需求調度到相應計算節點並執行,實現工作流引擎與kubernetes系統的對接協同工作,有效提升作業執行效率和資源使用效率。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明實施例的基於kubernetes系統對接工作流引擎的作業調度方法流程圖;

圖2為本發明實施例中可執行單元執行失敗時的處理步驟流程圖;

圖3為本發明實施例中監聽容器狀態變化的處理步驟流程圖;

圖4為本發明實施例中主動查詢容器執行狀態的處理步驟流程圖;

圖5為本發明實施例的基於kubernetes系統對接工作流引擎的作業調度裝置結構示意圖。

具體實施方式

為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,並參照附圖,對本發明進一步詳細說明。

需要說明的是,本發明實施例中所有使用「第一」和「第二」的表述均是為了區分兩個相同名稱非相同的實體或者非相同的參量,可見「第一」「第二」僅為了表述的方便,不應理解為對本發明實施例的限定,後續實施例對此不再一一說明。

本發明實施例提供了一種基於kubernetes系統對接工作流引擎的作業調度方法。參考圖1,為本發明實施例的基於kubernetes系統對接工作流引擎的作業調度方法流程圖。

所述基於kubernetes系統對接工作流引擎的作業調度方法,包括以下步驟:

步驟101、接收工作流引擎提交的可執行單元。

工作流引擎按照作業流程定義將作業拆分成若干個具有先後執行順序的可執行單元,並按照所述的執行順序將若干個可執行單元進行依次提交。本步驟中,首先接收工作流引擎提交的一個可執行單元。

步驟102、根據所述可執行單元的參數,生成用於供kubernetes系統創建容器的配置文件。

本步驟中,在接收到可執行單元後,獲取可執行單元的參數,獲得的參數一般包括:執行命令、資源需求(cpu、內存等)、輸入輸出文件等,根據上述參數生成配置文件。該配置文件能夠被kubernetes系統識別,kubernetes系統能夠根據配置文件的記載內容,創建具有相應處理能力的容器。一般的,所述的配置文件為yaml文件。

步驟103、將所述配置文件發送至kubernetes系統,使kubernetes系統根據所述配置文件創建容器並執行所述可執行單元。

本步驟中,將生成的配置文件發送至kubernetes系統。kubernetes系統接收到所述的配置文件後,根據配置文件的記載內容,創建容器並調度到相應的節點執行所述的可執行單元。

步驟104、接收kubernetes系統返回的關於所述可執行單元的第一結果信息。

容器執行可執行單元成功或者失敗後,返回第一結果信息。第一結果信息一般包括:任務成功(completed)、任務失敗(crashloopbackoff,容器創建失敗)、命令執行失敗(error,執行過程失敗)。

步驟105、對所述第一結果信息進行轉譯,生成能夠被工作流引擎識別的第二結果信息,並將所述第二結果信息發送至工作流引擎。

前述步驟中獲得的第一結果信息為kubernetes系統格式,其無法被工作流引擎直接識別。則在本步驟中,首先將第一結果信息進行轉譯,將其轉譯成為能夠被工作流引擎識別的第二結果信息,然後在將發送至工作流引擎。對應於第一結果信息,第二結果信息一般包括:任務成功(task_finished)、任務失敗(task_fail,容器創建失敗)、命令執行失敗(task_error,執行過程失敗)。

步驟106、若所述第二結果信息為執行成功,則接收工作流引擎按所述執行順序提交的下一個可執行單元。

工作流引擎接收到第二結果信息後,若第二結果信息為執行成功,則表明kubernetes系統成功完成了當前可執行單元的執行工作。接下來,工作流引擎將會按照之前設置的執行順序,提交一下個執行單元,直至所有的可執行單元均成功執行後,當前作業結束,作業狀態設置為成功。

在一個實施例中,若所述第二結果信息為執行失敗,參考圖2,本實施例的方法還包括可執行單元執行失敗時的處理步驟:

步驟201、接收工作流引擎提交的錯誤日誌查詢請求,並將所述錯誤日誌查詢請求發送至kubernetes系統。

步驟202、接收kubernetes系統返回的容器執行錯誤日誌,並將所述容器執行錯誤日誌發送至工作流引擎。

通過步驟201至步驟202,使得工作流引擎能夠向kubernetes系統請求獲得可執行單元的容器執行錯誤日誌,通過解析容器執行錯誤日誌,獲知可執行單元執行失敗的原因,並對執行失敗的原因進行分析、記錄。

步驟203、接收工作流引擎提交的容器刪除請求,並將所述容器刪除請求發送至kubernetes系統。

步驟204、接收kubernetes系統返回的容器刪除信息,並將所述容器刪除信息發送至工作流引擎,使工作流引擎中斷所述作業。

通過步驟203至步驟204,令kubernetes系統將用於執行當前可執行單元的容器刪除,釋放其佔有的資源供為其他作業使用。

在一個實施例中,在前述實施例中的步驟103之後,本實施例的方法還包括監聽容器狀態變化的處理步驟:

步驟301、向kubernetes系統發出監聽請求,用以在所述可執行單元的執行狀態發生變化時,獲取kubernetes系統返回的執行狀態信息;

步驟302、將符合預設條件的所述執行狀態信息作為所述第一結果信息。

常用的kubernetes系統並沒有在容器執行完成或者刪除成功後主動通知的機制,本實施例中,設置有主動監聽步驟,具體包括:向kubernetes系統發出監聽請求,用以在所述可執行單元的執行狀態發生變化時,獲取kubernetes系統返回的執行狀態信息。其中,獲取到執行狀態信息中,除了前述的任務成功(completed)、任務失敗(crashloopbackoff,容器創建失敗)、命令執行失敗(error,執行過程失敗)之外,還包括其他的標示執行過程中狀態的執行狀態信息,如:任務等待中(pending)、任務進行中(running)等。則需要按照預設條件,將任務成功(completed)、任務失敗(crashloopbackoff,容器創建失敗)、命令執行失敗(error,執行過程失敗)三種執行狀態信息挑選出來,並在後續處理步驟中將其作為結果信息進行後續處理。

在一個實施例中,在前述實施例中的步驟103之後,參考圖4,本實施例的方法還包括主動查詢容器執行狀態的處理步驟:

步驟401、接收工作流引擎發送的查詢指令。

步驟402、向kubernetes系統獲取所述可執行單元的執行狀態信息,並將所述執行狀態信息發送至工作流引擎。

在實際應用中,有時會無法及時獲得可執行單元的執行狀態信息,這會導致可執行單元對應的容器實際已經執行完成而工作流引擎未收到相應通知一直等待的場景。相應的,本實施例中提供了主動查詢容器執行狀態的處理步驟,使得工作流引擎能夠實時的或是定時查詢獲得可執行單元對應容器的容器執行狀態,實現一種撿漏機制。

由上述實施例可見,本發明的基於kubernetes系統對接工作流引擎的作業調度方法和裝置,使得工作流引擎將可執行單元分配給kubernetes系統,由kubernetes系統根據可執行單元的資源需求調度到相應計算節點並執行,實現工作流引擎與kubernetes系統的對接協同工作,有效提升作業執行效率和資源使用效率。

另一方面,本發明實施例還提供了一種基於kubernetes系統對接工作流引擎的作業調度裝置。參考圖5,為本發明實施例的基於kubernetes系統對接工作流引擎的作業調度裝置結構示意圖。

所述基於kubernetes系統對接工作流引擎的作業調度裝置,包括:

第一接收模塊501,用於接收工作流引擎提交的可執行單元;以及,若所述第二結果信息為執行成功,則接收工作流引擎按所述執行順序提交的下一個可執行單元;

配置文件生成模塊502,用於根據所述可執行單元的參數,生成用於供kubernetes系統創建容器的配置文件;

第一發送模塊503,用於將所述配置文件發送至kubernetes系統,使kubernetes系統根據所述配置文件創建容器並執行所述可執行單元;

第二接收模塊504,用於接收kubernetes系統返回的關於所述可執行單元的第一結果信息;

第二發送模塊505,用於對所述第一結果信息進行轉譯,生成能夠被工作流引擎識別的第二結果信息,並將所述第二結果信息發送至工作流引擎。

進一步的,第一接收模塊501還用於:若所述第二結果信息為執行失敗,則接收工作流引擎提交的容器刪除請求;第一發送模塊503還用於:將所述容器刪除請求發送至kubernetes系統;相應的,第二接收模塊504還用於:接收kubernetes系統返回的容器刪除信息;第二發送模塊505還用於:將所述容器刪除信息發送至工作流引擎,使工作流引擎中斷所述作業。

進一步的,第一接收模塊501還用於:接收工作流引擎提交的錯誤日誌查詢請求;第一發送模塊503還用於:將所述錯誤日誌查詢請求發送至kubernetes系統;相應的,第二接收模塊504還用於:接收kubernetes系統返回的容器執行錯誤日誌;第二發送模塊505還用於:將所述容器執行錯誤日誌發送至工作流引擎。

進一步的,所述裝置還包括:監聽模塊506,用於向kubernetes系統發出監聽請求,用以在所述可執行單元的執行狀態發生變化時,獲取kubernetes系統返回的執行狀態信息,並將符合預設條件的所述執行狀態信息作為所述第一結果信息。

進一步的,所述裝置還包括:查詢模塊507,用於接收工作流引擎發送的查詢指令;向kubernetes系統獲取所述可執行單元的執行狀態信息,並將所述執行狀態信息發送至工作流引擎。

上述實施例的裝置用於實現前述實施例中相應的方法,並且具有相應的方法實施例的有益效果,在此不再贅述。

所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,並非旨在暗示本公開的範圍(包括權利要求)被限於這些例子;在本發明的思路下,以上實施例或者不同實施例中的技術特徵之間也可以進行組合,步驟可以以任意順序實現,並存在如上所述的本發明的不同方面的許多其它變化,為了簡明它們沒有在細節中提供。

本發明的實施例旨在涵蓋落入所附權利要求的寬泛範圍之內的所有這樣的替換、修改和變型。因此,凡在本發明的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀