System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及服務器,尤其涉及一種流水線任務的執行方法及服務器。
技術介紹
1、在現代軟件開發中,持續集成和持續交付(ci/cd)流程(簡稱流水線任務)對于提升開發效率和軟件質量具有重要作用。許多企業采用基于kubernetes(k8s)集群的方案來實現這些流程,以利用kubernetes的彈性和擴展性。其中,jenkins作為一種廣泛使用的自動化服務器,被用于觸發和管理流水線任務,以實現自動化構建、測試和部署。
2、在kubernetes集群中,持久存儲的選擇對流水線任務的效率和資源管理至關重要。尤其是當采用hostpath作為持久存儲方案時,kubernetes插件在jenkins觸發流水線任務后,會在集群中選擇節點創建pod。pod在執行jenkins流水線任務時,會將任務的相關數據存儲在pod中。盡管pod在生命周期結束后會被銷毀,但存儲在宿主機目錄中的數據仍然保留。這意味著,每次pod創建并執行jenkins流水線任務時,宿主機都會存儲一份新的數據副本。
3、由于jenkins流水線任務的數據常常存在相似性或重復性,每個pod執行任務時產生的數據被重復存儲在宿主機上,從而造成了嚴重的磁盤資源浪費。這種重復存儲不僅浪費了寶貴的磁盤空間,還可能影響kubernetes集群的整體性能和存儲管理效率。
4、因此,為了提高存儲資源的利用效率和優化構建過程中的數據管理,需要在現有的存儲機制中引入創新的解決方案,以減少數據的重復存儲和浪費。
技術實現思路
2、第一方面,本申請實施例提供了一種流水線任務的執行方法。該方法包括:
3、在宿主機中創建用于執行流水線任務的服務單元pod;其中,所述宿主機的磁盤中掛載有共享數據目錄和工作空間目錄,所述共享數據目錄包括用于執行所述流水線任務的共享數據;
4、將所述共享數據目錄和所述工作空間目錄映射至所述pod中;
5、將所述共享數據目錄中的共享數據移動到所述工作空間目錄中,以使所述pod根據所述共享數據執行所述流水線任務。
6、在本申請實施例中,在宿主機中創建用于執行流水線任務的服務單元pod,將流水線任務的執行環境隔離在獨立的pod中,從而避免了任務間的相互干擾,并提供了一個穩定、可重復的執行環境。在創建pod后,將共享數據目錄和工作空間目錄映射至pod中,確保pod能夠直接訪問宿主機上的共享數據和工作空間數據,無需在pod內重復存儲這些數據,進而減少了磁盤資源的消耗。然后,將共享數據目錄中的共享數據移動到工作空間目錄中,以使pod根據這些共享數據執行流水線任務。通過將共享數據移動到工作空間中執行,pod可以高效地使用已有數據來完成任務,從而避免了每次任務執行時重新存儲相同的數據,減少了數據重復存儲的需要。
7、通過將共享數據直接移動到工作空間目錄中進行任務執行,不僅避免了每次任務執行時重復存儲相同數據的問題,還有效減少了磁盤資源的浪費。這種方法優化了存儲資源的使用,提高了kubernetes集群中流水線任務的執行效率,并有助于維護集群的整體性能和存儲管理的穩定性。
8、在一種可能的實現方式中,所述將所述共享數據目錄和所述工作空間目錄映射至所述pod中,包括:
9、將所述共享數據目錄和所述工作空間目錄映射至所述pod的第一磁盤中,并將所述工作空間目錄映射至所述pod的第二磁盤中;其中,所述第一磁盤中映射的工作空間目錄與所述第二磁盤中映射的工作空間目錄數據同步。
10、在本申請實施例中,將共享數據目錄和工作空間目錄共同映射至pod的第一磁盤,可以在磁盤內部進行共享數據的移動操作,避免了跨磁盤的數據傳輸,提高數據傳輸效率。并且,第一磁盤和第二磁盤中的工作空間目錄數據同步,確保在不同磁盤上工作空間數據的一致性,使得pod在處理任務時,不論從哪個磁盤訪問工作空間目錄的共享數據,均能夠同步的數據。有效避免因數據不同步而導致的任務錯誤或數據不一致問題,提高了任務執行的可靠性和準確性。
11、在一種可能的實現方式中,所述將所述共享數據目錄和所述工作空間目錄映射至所述pod中,包括:
12、將所述共享數據目錄映射至所述pod的第一磁盤中,并將所述工作空間目錄映射至所述pod的第二磁盤中;其中,所述第一磁盤中映射的工作空間目錄與所述第二磁盤中映射的工作空間目錄數據同步。
13、在一種可能的實現方式中,所述在宿主機中創建用于執行所述流水線任務的服務單元pod,包括:
14、確定所述流水線任務的標簽;
15、根據匹配所述標簽的pod模板生成所述pod的配置信息;
16、根據所述配置信息創建所述pod。
17、在本申請實施例中,通過引入標簽匹配和pod模板的機制,增強了流水線任務執行過程中pod創建的靈活性和效率。通過標簽選擇匹配的pod模板,實現了資源的優化分配和管理的簡化,同時提高了pod的創建速度和系統的可擴展性,實現kubernetes集群中流水線任務的高效執行和管理。
18、在一種可能的實現方式中,在將所述共享數據目錄中的共享數據移動到所述工作空間目錄中之前,所述方法還包括:
19、查詢所述工作空間目錄是否存在所述共享數據;
20、所述將所述共享數據目錄中的共享數據移動到所述工作空間目錄中,包括:
21、在所述工作空間目錄中未查詢到所述共享數據的情況下,將所述共享數據目錄中的共享數據移動到所述工作空間目錄中;
22、在所述工作空間目錄中查詢到所述共享數據的情況下,所述方法還包括:
23、利用所述工作空間目錄中的共享數據執行所述流水線任務。
24、在本申請實施例中,在將共享數據從共享數據目錄移動到工作空間目錄之前,先查詢工作空間目錄中是否已經存在共享數據,避免不必要的數據移動操作。如果工作空間目錄中已經存在共享數據,就無需重復移動,直接利用工作空間目錄中的共享數據來執行流水線任務,從而節省了磁盤i/o操作的時間和資源。該方法通過在移動共享數據之前進行查詢操作,優化了共享數據的使用和管理。通過避免不必要的數據移動,降低了存儲開銷和系統負載,提高了任務處理效率。同時,這種方式簡化了數據管理流程,增強了數據的一致性。整體上,這一實現方式在保證數據有效性的同時,提升了系統的性能和資源利用效率。
25、在一種可能的實現方式中,所述將所述共享數據目錄中的共享數據移動到所述工作空間目錄中,包括:
26、遍歷所述共享數據目錄中的共享數據,選擇在所述共享數據目錄中沒有對應空目錄的共享數據作為目標共享數據;所述空目錄用于表示空目錄對應的共享數據已被占用;
27、在所述共享數據目錄中創建所述目標共享數據對應的空目錄,并將所述目標共享數據移動到所述工作空間目錄中。
28、在本申請實施例中,在共享數據目錄中利本文檔來自技高網...
【技術保護點】
1.一種流水線任務的執行方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述將所述共享數據目錄和所述工作空間目錄映射至所述Pod中,包括:
3.根據權利要求1所述的方法,其特征在于,所述將所述共享數據目錄和所述工作空間目錄映射至所述Pod中,包括:
4.根據權利要求1所述的方法,其特征在于,所述在宿主機中創建用于執行所述流水線任務的服務單元Pod,包括:
5.根據權利要求1所述的方法,其特征在于,在將所述共享數據目錄中的共享數據移動到所述工作空間目錄中之前,所述方法還包括:
6.根據權利要求1-5任意一項所述的方法,其特征在于,所述將所述共享數據目錄中的共享數據移動到所述工作空間目錄中,包括:
7.根據權利要求2或3所述的方法,其特征在于,所述Pod通過所述第二磁盤中的工作空間目錄處理所述流水線任務。
8.根據權利要求1所述的方法,其特征在于,所述Pod執行完成所述流水線任務后,所述方法還包括:
9.根據權利要求8所述的方法,其特征在于,所述將所述共享數據從所述工作
10.一種服務器,其特征在于,包括處理器,以及與所述處理器通信連接的存儲器;
...【技術特征摘要】
1.一種流水線任務的執行方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述將所述共享數據目錄和所述工作空間目錄映射至所述pod中,包括:
3.根據權利要求1所述的方法,其特征在于,所述將所述共享數據目錄和所述工作空間目錄映射至所述pod中,包括:
4.根據權利要求1所述的方法,其特征在于,所述在宿主機中創建用于執行所述流水線任務的服務單元pod,包括:
5.根據權利要求1所述的方法,其特征在于,在將所述共享數據目錄中的共享數據移動到所述工作空間目錄中之前,所述方法還包括:
...
【專利技術屬性】
技術研發人員:黃奧,
申請(專利權)人:超聚變數字技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。