本申請(qǐng)涉及互聯(lián)網(wǎng),特別涉及一種容器化服務(wù)重啟方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、目前的服務(wù)部署方案中,大多通過k8s(kubernetes的簡稱)等容器化方法打包應(yīng)用程序及其所依賴的系統(tǒng)和其他環(huán)境,并基于容器進(jìn)行整體部署。
2、當(dāng)服務(wù)所依賴的數(shù)據(jù)有更新時(shí),需要對(duì)服務(wù)進(jìn)行重啟以應(yīng)用更新的數(shù)據(jù)。相關(guān)技術(shù)中,需要通過銷毀現(xiàn)有的部署該服務(wù)的容器和pod(k8s最小資源管理單位),然后重新創(chuàng)建新的pod和容器的方式來實(shí)現(xiàn)服務(wù)重啟,這個(gè)過程耗時(shí)通常要數(shù)秒到數(shù)十秒不等;這對(duì)于需要頻繁更新重啟的業(yè)務(wù)領(lǐng)域如導(dǎo)航等業(yè)務(wù)領(lǐng)域,以及服務(wù)規(guī)模較大的公司而言,如果都經(jīng)歷一次pod的銷毀、資源申請(qǐng)、重建等流程,所消耗的cpu和內(nèi)存資源是極大的,且重啟流程和周期長可能會(huì)導(dǎo)致資源被搶占,導(dǎo)致新pod和容器無法創(chuàng)建,從而影響到業(yè)務(wù)的正常運(yùn)行。
技術(shù)實(shí)現(xiàn)思路
1、為了解決現(xiàn)有服務(wù)重啟的資源消耗大、周期長等問題,本申請(qǐng)?zhí)峁┝艘环N容器化服務(wù)重啟方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì):
2、根據(jù)本申請(qǐng)的第一方面,提供了一種容器化服務(wù)重啟方法,應(yīng)用于容器管理端,方法包括:
3、獲取多個(gè)容器中每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài);多個(gè)容器對(duì)應(yīng)同一服務(wù)的多個(gè)服務(wù)實(shí)例;
4、針對(duì)每個(gè)容器,若當(dāng)前運(yùn)行狀態(tài)指示當(dāng)前容器內(nèi)服務(wù)待重啟,向服務(wù)注冊(cè)中心發(fā)送反注冊(cè)請(qǐng)求;反注冊(cè)請(qǐng)求用于指示服務(wù)注冊(cè)中心停止將服務(wù)請(qǐng)求發(fā)送到當(dāng)前容器上;
5、停止當(dāng)前容器中的服務(wù)進(jìn)程;
6、基于獲取的服務(wù)更新數(shù)據(jù)重新啟動(dòng)當(dāng)前容器內(nèi)的服務(wù)進(jìn)程;
7、當(dāng)檢測(cè)到當(dāng)前容器內(nèi)服務(wù)重啟成功時(shí),向服務(wù)注冊(cè)中心發(fā)送注冊(cè)請(qǐng)求;注冊(cè)請(qǐng)求用于指示服務(wù)注冊(cè)中心當(dāng)前容器重新對(duì)外提供服務(wù)。
8、根據(jù)本申請(qǐng)的第二方面,提供了一種容器化服務(wù)重啟方法,應(yīng)用于服務(wù)開發(fā)端,方法包括:
9、當(dāng)確定進(jìn)入服務(wù)重啟狀態(tài)時(shí),對(duì)部署服務(wù)的多個(gè)容器進(jìn)行分批得到重啟批次信息;多個(gè)容器對(duì)應(yīng)服務(wù)的多個(gè)服務(wù)實(shí)例;
10、根據(jù)重啟批次信息,動(dòng)態(tài)更新每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài)為重啟狀態(tài);重啟狀態(tài)用于指示容器管理端對(duì)當(dāng)前容器內(nèi)的服務(wù)進(jìn)程執(zhí)行重啟操作。
11、根據(jù)本申請(qǐng)的第三方面,提供了一種容器化服務(wù)重啟裝置,應(yīng)用于容器管理端,裝置包括:
12、獲取模塊,用于獲取多個(gè)容器中每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài);多個(gè)容器對(duì)應(yīng)同一服務(wù)的多個(gè)服務(wù)實(shí)例;
13、發(fā)送模塊,用于針對(duì)每個(gè)容器,若當(dāng)前運(yùn)行狀態(tài)指示當(dāng)前容器內(nèi)服務(wù)待重啟,向服務(wù)注冊(cè)中心發(fā)送反注冊(cè)請(qǐng)求;反注冊(cè)請(qǐng)求用于指示服務(wù)注冊(cè)中心停止將服務(wù)請(qǐng)求發(fā)送到當(dāng)前容器上;
14、停止模塊,用于停止當(dāng)前容器中的服務(wù)進(jìn)程;
15、啟動(dòng)模塊,用于基于獲取的服務(wù)更新數(shù)據(jù)重新啟動(dòng)當(dāng)前容器內(nèi)的服務(wù)進(jìn)程;
16、發(fā)送模塊,還用于當(dāng)檢測(cè)到當(dāng)前容器內(nèi)服務(wù)重啟成功時(shí),向服務(wù)注冊(cè)中心發(fā)送注冊(cè)請(qǐng)求;注冊(cè)請(qǐng)求用于指示服務(wù)注冊(cè)中心當(dāng)前容器重新對(duì)外提供服務(wù)。
17、根據(jù)本申請(qǐng)的第四方面,提供了一種容器化服務(wù)重啟裝置,應(yīng)用于服務(wù)開發(fā)端,裝置包括:
18、分批模塊,用于當(dāng)確定進(jìn)入服務(wù)重啟狀態(tài)時(shí),對(duì)部署服務(wù)的多個(gè)容器進(jìn)行分批得到重啟批次信息;多個(gè)容器對(duì)應(yīng)服務(wù)的多個(gè)服務(wù)實(shí)例;
19、更新模塊,用于根據(jù)重啟批次信息,動(dòng)態(tài)更新每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài)為重啟狀態(tài);重啟狀態(tài)用于指示容器管理端對(duì)當(dāng)前容器內(nèi)的服務(wù)進(jìn)程執(zhí)行重啟操作。
20、根據(jù)本申請(qǐng)的第五方面,提供了一種電子設(shè)備,包括處理器和存儲(chǔ)器,存儲(chǔ)器中存儲(chǔ)有至少一條指令或至少一段程序,至少一條指令或至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)如第一方面或第二方面的容器化服務(wù)重啟方法。
21、根據(jù)本申請(qǐng)的第六方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)介質(zhì)中存儲(chǔ)有至少一條指令或至少一段程序,至少一條指令或至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)如第一方面或第二方面的容器化服務(wù)重啟方法。
22、根據(jù)本申請(qǐng)的第七方面,提供了一種計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如第一方面或第二方面的容器化服務(wù)重啟方法。
23、本申請(qǐng)?zhí)峁┑囊环N容器化服務(wù)重啟方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),具有如下技術(shù)效果:
24、容器管理端獲取對(duì)多個(gè)容器中每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài),當(dāng)前運(yùn)行狀態(tài)指示當(dāng)前容器內(nèi)服務(wù)待重啟時(shí)向服務(wù)注冊(cè)中心發(fā)送反注冊(cè)請(qǐng)求,以停止將服務(wù)請(qǐng)求路由到當(dāng)前容器上,然后容器管理端再停止當(dāng)前容器中的服務(wù)進(jìn)程,并基于服務(wù)更新數(shù)據(jù)重新啟動(dòng)服務(wù)進(jìn)程,最后在完成服務(wù)重啟后向服務(wù)注冊(cè)中心申請(qǐng)開放訪問完成服務(wù)重啟。本申請(qǐng)中容器管理端只需對(duì)容器內(nèi)的服務(wù)進(jìn)程進(jìn)行重啟操作,相較于相關(guān)技術(shù)中銷毀再重建pod和容器的方式是非常輕量級(jí)的操作,可以降低服務(wù)重啟的時(shí)長、減少資源消耗,且可以保證重啟過程中服務(wù)流量不受影響,能夠快速、高效、安全、節(jié)能地完成服務(wù)重啟。
1.一種容器化服務(wù)重啟方法,其特征在于,應(yīng)用于容器管理端,所述方法包括:
2.根據(jù)權(quán)利要求1所述的容器化服務(wù)重啟方法,其特征在于,所述獲取多個(gè)容器中每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài),包括:
3.根據(jù)權(quán)利要求1或2所述的容器化服務(wù)重啟方法,其特征在于,所述若所述當(dāng)前運(yùn)行狀態(tài)指示當(dāng)前容器內(nèi)服務(wù)待重啟,向服務(wù)注冊(cè)中心發(fā)送反注冊(cè)請(qǐng)求,包括:
4.根據(jù)權(quán)利要求1-3中任一所述的容器化服務(wù)重啟方法,其特征在于,所述基于獲取的服務(wù)更新數(shù)據(jù)重新啟動(dòng)所述當(dāng)前容器內(nèi)的服務(wù)進(jìn)程,包括:
5.根據(jù)權(quán)利要求1所述的容器化服務(wù)重啟方法,其特征在于,所述獲取多個(gè)容器中每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài)之前,還包括:
6.一種容器化服務(wù)重啟方法,其特征在于,應(yīng)用于服務(wù)開發(fā)端,所述方法包括:
7.根據(jù)權(quán)利要求6所述的容器化服務(wù)重啟方法,其特征在于,所述根據(jù)所述重啟批次信息,動(dòng)態(tài)更新所述每個(gè)容器內(nèi)服務(wù)的當(dāng)前運(yùn)行狀態(tài)為重啟狀態(tài),包括:
8.根據(jù)權(quán)利要求7所述的容器化服務(wù)重啟方法,其特征在于,所述從所述重啟批次信息中確定當(dāng)前待重啟容器,包括:
9.一種容器化服務(wù)重啟裝置,其特征在于,應(yīng)用于容器管理端,所述裝置包括:
10.一種容器化服務(wù)重啟裝置,其特征在于,應(yīng)用于服務(wù)開發(fā)端,所述裝置包括:
11.一種電子設(shè)備,其特征在于,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器中存儲(chǔ)有至少一條指令或者至少一段程序,所述至少一條指令或者所述至少一段程序由所述處理器加載并執(zhí)行以實(shí)現(xiàn)如權(quán)利要求1~8中任一項(xiàng)所述的容器化服務(wù)重啟方法。
12.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有至少一條指令或者至少一段程序,所述至少一條指令或者所述至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)如權(quán)利要求1~8任一項(xiàng)所述的容器化服務(wù)重啟方法。
13.一種計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1~8中任一項(xiàng)所述的容器化服務(wù)重啟方法。