本申請(qǐng)涉及容器管理,尤其涉及容器狀態(tài)檢測(cè)方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、kubernetes平臺(tái)通過存活探針(liveness?probe)機(jī)制監(jiān)控容器狀態(tài)。存活探針機(jī)制是基于http接口檢查實(shí)現(xiàn)的,通過kubelet組件根據(jù)指定路徑向容器內(nèi)運(yùn)行的服務(wù)發(fā)送一個(gè)http?get請(qǐng)求來執(zhí)行探測(cè)。如果該路徑下的容器內(nèi)運(yùn)行的服務(wù)返回成功代碼,則表示容器狀態(tài)正常。如果該路徑下的容器內(nèi)運(yùn)行的服務(wù)返回錯(cuò)誤代碼,則表示容器狀態(tài)異常,kubelet組件會(huì)殺死異常容器并重新啟動(dòng)容器。而這個(gè)返回碼是不對(duì)外暴露的,運(yùn)維人員無法得知該容器具體的返回碼,無法根據(jù)具體的返回碼判斷容器的具體錯(cuò)誤類別,導(dǎo)致難以根據(jù)容器的具體錯(cuò)誤類別進(jìn)行異常處理。并且,只能通過kubectl組件的命令行工具查看容器事件或者容器日志才能得知存活探針監(jiān)測(cè)到的容器狀態(tài),這導(dǎo)致實(shí)時(shí)性低和操作繁瑣的問題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例的主要目的在于提出容器狀態(tài)檢測(cè)方法、裝置、設(shè)備及介質(zhì),能夠便于獲取實(shí)時(shí)性高的容器狀態(tài)信息。
2、為實(shí)現(xiàn)上述目的,本申請(qǐng)實(shí)施例的第一方面提出了一種容器狀態(tài)檢測(cè)方法,包括:
3、獲取協(xié)調(diào)服務(wù)組件的地址,獲取上報(bào)配置文件;
4、根據(jù)所述上報(bào)配置文件的配置信息執(zhí)行周期性向容器發(fā)起請(qǐng)求的定時(shí)任務(wù),將所述定時(shí)任務(wù)的實(shí)例存儲(chǔ)到第一字典得到第一實(shí)例,在當(dāng)前第一實(shí)例不同于前一第一實(shí)例的情況下更新所述第一字典;
5、根據(jù)所述協(xié)調(diào)服務(wù)組件的地址連接協(xié)調(diào)服務(wù)組件;
6、將所述第一字典中的第一實(shí)例存儲(chǔ)到第二字典得到第二實(shí)例,在當(dāng)前第二實(shí)例不同于前一第二實(shí)例的情況下,根據(jù)所述上報(bào)配置文件的固定參數(shù)更新所述第二字典,將更新后的第二字典上傳到協(xié)調(diào)服務(wù)組件。
7、在一些實(shí)施例中,所述獲取協(xié)調(diào)服務(wù)組件的地址,包括:
8、根據(jù)容器集群的環(huán)境變量獲取環(huán)境名;
9、獲取容器集群的配置中心的本地配置文件,根據(jù)所述環(huán)境名從所述本地配置文件獲取配置中心的地址和配置中心的配置信息;
10、根據(jù)所述配置中心的地址和所述配置中心的配置信息連接配置中心;
11、從所述配置中心獲取協(xié)調(diào)服務(wù)組件的地址。
12、在一些實(shí)施例中,所述獲取上報(bào)配置文件,包括:
13、根據(jù)容器集群的環(huán)境變量獲取上報(bào)配置文件的名稱;
14、根據(jù)上報(bào)配置文件的名稱從所述配置中心獲取上報(bào)配置文件。
15、在一些實(shí)施例中,所述將所述定時(shí)任務(wù)的實(shí)例存儲(chǔ)到第一字典得到第一實(shí)例,包括:
16、以所述上報(bào)配置文件的配置信息的請(qǐng)求名稱為鍵,將所述定時(shí)任務(wù)的實(shí)例存儲(chǔ)到第一字典得到第一實(shí)例。
17、在一些實(shí)施例中,所述在當(dāng)前第一實(shí)例不同于前一第一實(shí)例的情況下更新所述第一字典,包括:
18、在當(dāng)前第一實(shí)例關(guān)聯(lián)的請(qǐng)求名稱不同于前一第一實(shí)例關(guān)聯(lián)的請(qǐng)求名稱的情況下,停止對(duì)應(yīng)所述前一第一實(shí)例關(guān)聯(lián)的請(qǐng)求名稱的定時(shí)任務(wù),移除所述第一字典中前一第一實(shí)例以及前一第一實(shí)例關(guān)聯(lián)的請(qǐng)求名稱,更新為當(dāng)前第一實(shí)例以及當(dāng)前第一實(shí)例的請(qǐng)求名稱。
19、在一些實(shí)施例中,所述將所述第一字典中的第一實(shí)例存儲(chǔ)到第二字典得到第二實(shí)例,包括:
20、以所述第一字典中的第一實(shí)例的請(qǐng)求名稱為鍵,將所述第一字典中的第一實(shí)例存儲(chǔ)到第二字典得到第二實(shí)例。
21、在一些實(shí)施例中,所述在當(dāng)前第二實(shí)例不同于前一第二實(shí)例的情況下,根據(jù)所述上報(bào)配置文件的固定參數(shù)更新所述第二字典,包括:
22、在當(dāng)前第二實(shí)例關(guān)聯(lián)的請(qǐng)求名稱不同于前一第二實(shí)例關(guān)聯(lián)的請(qǐng)求名稱的情況下,移除所述第二字典中前一第二實(shí)例以及前一第二實(shí)例關(guān)聯(lián)的請(qǐng)求名稱,根據(jù)所述上報(bào)配置文件的固定參數(shù)更新所述第二字典。
23、為實(shí)現(xiàn)上述目的,本申請(qǐng)實(shí)施例的第二方面提出了一種容器狀態(tài)檢測(cè)裝置,包括:
24、預(yù)準(zhǔn)備模塊,用于獲取協(xié)調(diào)服務(wù)組件的地址和獲取上報(bào)配置文件;
25、定時(shí)任務(wù)管理模塊,用于根據(jù)所述上報(bào)配置文件的配置信息執(zhí)行周期性向容器發(fā)起請(qǐng)求的定時(shí)任務(wù),將所述定時(shí)任務(wù)的實(shí)例存儲(chǔ)到第一字典得到第一實(shí)例,在當(dāng)前第一實(shí)例不同于前一第一實(shí)例的情況下更新所述第一字典;
26、連接模塊,用于根據(jù)所述協(xié)調(diào)服務(wù)組件的地址連接協(xié)調(diào)服務(wù)組件;
27、上報(bào)模塊,用于將所述第一字典中的第一實(shí)例存儲(chǔ)到第二字典得到第二實(shí)例,在當(dāng)前第二實(shí)例不同于前一第二實(shí)例的情況下,根據(jù)所述上報(bào)配置文件的固定參數(shù)更新所述第二字典,將更新后的第二字典上傳到協(xié)調(diào)服務(wù)組件。
28、為實(shí)現(xiàn)上述目的,本申請(qǐng)實(shí)施例的第三方面提出了一種電子設(shè)備,所述電子設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如本申請(qǐng)實(shí)施例的第一方面所述的容器狀態(tài)檢測(cè)方法。
29、為實(shí)現(xiàn)上述目的,本申請(qǐng)實(shí)施例的第四方面提出了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如本申請(qǐng)實(shí)施例的第一方面所述的容器狀態(tài)檢測(cè)方法。
30、本申請(qǐng)?zhí)岢龅娜萜鳡顟B(tài)檢測(cè)方法、裝置、設(shè)備及介質(zhì),通過根據(jù)上報(bào)配置文件的配置信息執(zhí)行周期性向容器發(fā)起請(qǐng)求的定時(shí)任務(wù),將定時(shí)任務(wù)的實(shí)例存儲(chǔ)到第一字典得到第一實(shí)例,在當(dāng)前第一實(shí)例不同于前一第一實(shí)例的情況下更新第一字典;根據(jù)協(xié)調(diào)服務(wù)組件的地址連接協(xié)調(diào)服務(wù)組件;將第一字典中的第一實(shí)例存儲(chǔ)到第二字典得到第二實(shí)例,在當(dāng)前第二實(shí)例不同于前一第二實(shí)例的情況下,根據(jù)上報(bào)配置文件的固定參數(shù)更新第二字典,將更新后的第二字典上傳到協(xié)調(diào)服務(wù)組件;使得通過訂閱協(xié)調(diào)服務(wù)組件即可實(shí)時(shí)獲取部署容器狀態(tài)通知,有利于實(shí)時(shí)根據(jù)容器狀態(tài)進(jìn)行運(yùn)維處理,具有實(shí)時(shí)性高和操作方便的優(yōu)點(diǎn)。
1.一種容器狀態(tài)檢測(cè)方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的容器狀態(tài)檢測(cè)方法,其特征在于,所述獲取協(xié)調(diào)服務(wù)組件的地址,包括:
3.根據(jù)權(quán)利要求2所述的容器狀態(tài)檢測(cè)方法,其特征在于,所述獲取上報(bào)配置文件,包括:
4.根據(jù)權(quán)利要求1所述的容器狀態(tài)檢測(cè)方法,其特征在于,所述將所述定時(shí)任務(wù)的實(shí)例存儲(chǔ)到第一字典得到第一實(shí)例,包括:
5.根據(jù)權(quán)利要求4所述的容器狀態(tài)檢測(cè)方法,其特征在于,所述在當(dāng)前第一實(shí)例不同于前一第一實(shí)例的情況下更新所述第一字典,包括:
6.根據(jù)權(quán)利要求4所述的容器狀態(tài)檢測(cè)方法,其特征在于,所述將所述第一字典中的第一實(shí)例存儲(chǔ)到第二字典得到第二實(shí)例,包括:
7.根據(jù)權(quán)利要求6所述的容器狀態(tài)檢測(cè)方法,其特征在于,所述在當(dāng)前第二實(shí)例不同于前一第二實(shí)例的情況下,根據(jù)所述上報(bào)配置文件的固定參數(shù)更新所述第二字典,包括:
8.一種容器狀態(tài)檢測(cè)裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述的容器狀態(tài)檢測(cè)方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述的容器狀態(tài)檢測(cè)方法。