System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,具體涉及一種基于k8s的容器鏡像管理方法及裝置。
技術介紹
1、在容器應用中,容器的鏡像一般基于指定的基礎鏡像構建,基礎鏡像僅限包含運維所需的運維工具。當用戶在更新容器的鏡像中與業務程序無關的組件或運維工具時,往往需要等到業務方在下一次業務代碼迭代發布,或者向業務方申請,并完成鏡像重新構建->鏡像發布->應用重新發布->pod重新調度->鏡像下載->容器啟動->容器運行->pod運行->應用對外提供服務等一系列繁瑣的流程和操作,才能滿足運維簡單的更新需求。
2、目前使用控制器裝置鏡像預熱配置信息創建鏡像預熱job,并且賦予job中的容器高權限以與cri(container?runtime?interface,容器運行時插件)交互,完成容器的鏡像文件拉取。但是高權限的設置使得容器運行在重量級環境,導致容器的鏡像更新后預熱效率較低,且目前所使用的鏡像更新方法沒有將更新文件同步至容器層的文件,降低了容器對應的鏡像文件和容器文件的更新實時性。
技術實現思路
1、有鑒于此,本申請提供一種基于k8s的容器鏡像管理方法及裝置,無需部署控制器也無需賦予容器高權限,適用于低權限即可完成鏡像更新預熱,能夠提高容器的鏡像更新后預熱效率;且還可以實現鏡像文件和容器文件的動態更新,提高文件更新實時性。
2、為解決上述問題,本申請提供的技術方案如下:
3、第一方面,本申請提供一種基于k8s的容器鏡像管理方法,
4、響應于確定原始image-puller鏡像使用的基礎鏡像存在更新,獲取更新image-puller鏡像;
5、基于所述更新image-puller鏡像創建并下載更新image-puller容器;
6、向update-image容器發送容器啟動命令,所述容器啟動命令攜帶存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器id;
7、獲取所述update-image容器基于所述存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器id查詢到的所述更新image-puller鏡像的鏡像文件存儲信息和待更新容器對應的待更新鏡像的鏡像文件存儲信息;
8、對比所述更新image-puller鏡像的鏡像文件存儲信息和所述待更新鏡像的鏡像文件存儲信息,得到差異文件;
9、基于所述差異文件更新所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息。
10、在一種可能實現的方式中,所述響應于確定原始image-puller鏡像使用的基礎鏡像存在更新,獲取更新image-puller鏡像,包括:
11、獲取用戶通過應用發布系統配置的基礎鏡像更新信息;
12、基于所述基礎鏡像更新信息調整所述原始image-puller鏡像的哈希值,得到所述更新image-puller鏡像。
13、在一種可能實現的方式中,所述獲取所述update-image容器基于所述存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器id查詢到的所述更新image-puller鏡像的鏡像文件存儲信息和待更新容器對應的待更新鏡像的鏡像文件存儲信息,包括:
14、獲取所述update-image容器基于所述更新image-puller容器的容器id確定的原始image-puller鏡像的鏡像文件存儲信息;
15、基于所述原始image-puller鏡像的鏡像文件存儲信息和所述存在更新的基礎鏡像的overlay?mount信息,確定所述更新image-puller鏡像的鏡像文件存儲信息;
16、獲取所述update-image容器使用hostpath方式mount宿主機上的/proc和容器根目錄,基于所述更新image-puller容器的容器id查詢到待更新容器對應的待更新鏡像的鏡像名稱;
17、基于所述待更新鏡像的鏡像名稱確定所述待更新鏡像的鏡像文件存儲信息。
18、在一種可能實現的方式中,所述基于所述差異文件更新所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息,包括:
19、若所述差異文件為新增差異文件,則在所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息中新增所述差異文件;
20、若所述差異文件為修改差異文件,則在所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息中修改所述差異文件;
21、若所述差異文件為刪除差異文件,則從所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息中刪除所述差異文件。
22、在一種可能實現的方式中,若所述差異文件為新增差異文件和修改差異文件中的至少一種,則將新增差異文件或修改差異文件通過硬鏈接的方式寫入所述待更新鏡像的鏡像文件存儲信息中。
23、在一種可能實現的方式中,若所述差異文件為新增差異文件,則將新增差異文件拷貝到所述待更新容器的容器文件存儲信息中。
24、在一種可能實現的方式中,差異文件更新完成后,所述方法還包括:
25、向應用發布系統發送更新結果信息,所述更新結果信息指示k8s完成鏡像預熱及文件動態更新。
26、第二方面,本申請提供一種基于k8s的容器鏡像管理裝置,所述裝置應用于k8s,包括:
27、第一獲取模塊,用于響應于確定原始image-puller鏡像使用的基礎鏡像存在更新,獲取更新image-puller鏡像;
28、創建及下載模塊,用于基于所述更新image-puller鏡像創建并下載更新image-puller容器;
29、發送模塊,用于向update-image容器發送容器啟動命令,所述容器啟動命令攜帶存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器id;
30、第二獲取模塊,用于獲取所述update-image容器基于所述存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器id查詢到的所述更新image-puller鏡像的鏡像文件存儲信息和待更新容器對應的待更新鏡像的鏡像文件存儲信息;
31、對比模塊,用于對比所述更新image-puller鏡像的鏡像文件存儲信息和所述待更新鏡像的鏡像文件存儲信息,得到差異文件;
32、更新模塊,用于基于所述差異文件更新所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息。
33、在一種可能實現的方式中,所述第一獲取模塊,具體用于:
34、獲取用戶通過應用發布系統配置的基礎鏡像更新信息;基于所述基礎鏡像本文檔來自技高網...
【技術保護點】
1.一種基于K8S的容器鏡像管理方法,其特征在于,所述方法應用于K8S,包括:
2.根據權利要求1所述的基于K8S的容器鏡像管理方法,其特征在于,所述響應于確定原始image-puller鏡像使用的基礎鏡像存在更新,獲取更新image-puller鏡像,包括:
3.根據權利要求1所述的基于K8S的容器鏡像管理方法,其特征在于,所述獲取所述update-image容器基于所述存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器ID查詢到的所述更新image-puller鏡像的鏡像文件存儲信息和待更新容器對應的待更新鏡像的鏡像文件存儲信息,包括:
4.根據權利要求1所述的基于K8S的容器鏡像管理方法,其特征在于,所述基于所述差異文件更新所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息,包括:
5.根據權利要求4所述的基于K8S的容器鏡像管理方法,其特征在于,若所述差異文件為新增差異文件和修改差異文件中的至少一種,則將新增差異文件或修改差異文件通過硬鏈接的方式寫入所述待更新鏡像的
6.根據權利要求4所述的基于K8S的容器鏡像管理方法,其特征在于,若所述差異文件為新增差異文件,則將新增差異文件拷貝到所述待更新容器的容器文件存儲信息中。
7.根據權利要求1所述的基于K8S的容器鏡像管理方法,其特征在于,差異文件更新完成后,所述方法還包括:
8.一種基于K8S的容器鏡像管理裝置,其特征在于,所述裝置應用于K8S,包括:
9.根據權利要求8所述的基于K8S的容器鏡像管理裝置,其特征在于,所述第一獲取模塊,具體用于:
10.根據權利要求8所述的基于K8S的容器鏡像管理裝置,其特征在于,所述第二獲取模塊,具體用于:
...【技術特征摘要】
1.一種基于k8s的容器鏡像管理方法,其特征在于,所述方法應用于k8s,包括:
2.根據權利要求1所述的基于k8s的容器鏡像管理方法,其特征在于,所述響應于確定原始image-puller鏡像使用的基礎鏡像存在更新,獲取更新image-puller鏡像,包括:
3.根據權利要求1所述的基于k8s的容器鏡像管理方法,其特征在于,所述獲取所述update-image容器基于所述存在更新的基礎鏡像的overlay?mount信息和所述更新image-puller容器的容器id查詢到的所述更新image-puller鏡像的鏡像文件存儲信息和待更新容器對應的待更新鏡像的鏡像文件存儲信息,包括:
4.根據權利要求1所述的基于k8s的容器鏡像管理方法,其特征在于,所述基于所述差異文件更新所述待更新鏡像的鏡像文件存儲信息和所述待更新容器的容器文件存儲信息,包括:
【專利技術屬性】
技術研發人員:黃嶺林,吳辰陽,呂勇,林海濤,
申請(專利權)人:稅友信息技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。