本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基礎(chǔ)鏡像的下載方法以及管理節(jié)點(diǎn)。
背景技術(shù):
虛擬化技術(shù)是一種應(yīng)用于計(jì)算機(jī)的資源管理技術(shù),可以將計(jì)算機(jī)的各種物理資源(如網(wǎng)絡(luò)、內(nèi)存以及存儲(chǔ))予以抽象后呈現(xiàn)出來(lái),打破了物理結(jié)構(gòu)之間的界限,實(shí)現(xiàn)了物理資源的最大化利用。隨著傳統(tǒng)虛擬化技術(shù)的逐步成熟,性能和資源利用率已經(jīng)接近瓶頸,因此業(yè)內(nèi)提出了一種稱為容器技術(shù)的新型虛擬化技術(shù)。相比傳統(tǒng)虛擬化技術(shù),容器技術(shù)具有資源損耗更小、資源利用率更高以及運(yùn)行速度更快的優(yōu)點(diǎn)。
請(qǐng)參閱圖9,主機(jī)在啟動(dòng)一個(gè)容器時(shí),需先確定待啟動(dòng)的容器對(duì)應(yīng)的基礎(chǔ)鏡像,接著從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載該基礎(chǔ)鏡像,然后使用該基礎(chǔ)鏡像來(lái)啟動(dòng)容器。然而,當(dāng)基礎(chǔ)鏡像的大小較大,或者下載速度較慢時(shí),啟動(dòng)容器的時(shí)間將會(huì)大大延長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種基礎(chǔ)鏡像的下載方法以及管理節(jié)點(diǎn),可以實(shí)現(xiàn)加快容器的啟動(dòng)時(shí)間。
本發(fā)明實(shí)施例第一方面提供了一種基礎(chǔ)鏡像的下載方法,該方法實(shí)現(xiàn)于容器集群管理架構(gòu)中的管理節(jié)點(diǎn),容器集群管理架構(gòu)還包括遠(yuǎn)端鏡像倉(cāng)庫(kù)和至少一個(gè)計(jì)算節(jié)點(diǎn),該方法包括:獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,使用信息包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像;從所有的計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn);向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,預(yù)下載命令包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像,預(yù)下載命令用于指示目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像??梢宰層?jì)算節(jié)點(diǎn)預(yù)先下載基礎(chǔ)鏡像,以便后續(xù)直接使用預(yù)先下載好的基礎(chǔ)鏡像啟動(dòng)容器,加快容器的啟動(dòng)時(shí)間。
在第一方面的第一種可能實(shí)現(xiàn)方式中,使用信息還包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的使用頻率。相應(yīng)的,控制節(jié)點(diǎn)從所有的計(jì)算節(jié)點(diǎn)中篩選出運(yùn)行狀況滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)之前,還執(zhí)行:按照基礎(chǔ)鏡像的使用頻率由高到低的順序,對(duì)各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像進(jìn)行排序;預(yù)下載命令還包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的排序結(jié)果,預(yù)下載命令用于指示目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)按照排序結(jié)果的順序下載曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。優(yōu)點(diǎn)在于,可以讓計(jì)算節(jié)點(diǎn)優(yōu)先下載使用頻率較高的基礎(chǔ)鏡像,提高下載好的基礎(chǔ)鏡像被使用的概率。
在第一方面的第二種可能實(shí)現(xiàn)方式中,狀態(tài)信息包括計(jì)算節(jié)點(diǎn)的處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。相應(yīng)的,控制節(jié)點(diǎn)從所有的計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)的具體操作為:從所有的計(jì)算節(jié)點(diǎn)中,篩選出其處理器使用率低于第一預(yù)設(shè)閾值,其內(nèi)存使用率低于第二預(yù)設(shè)閾值,以及其本地鏡像倉(cāng)庫(kù)使用率低于第三預(yù)設(shè)閾值的目標(biāo)計(jì)算節(jié)點(diǎn)。優(yōu)點(diǎn)在于,可以避免狀態(tài)信息不滿足條件的計(jì)算節(jié)點(diǎn)去預(yù)先下載基礎(chǔ)鏡像,進(jìn)而避免下載失敗或超負(fù)荷的問(wèn)題。
結(jié)合第一方面或第一方面的第一至第二種中任意一種可能實(shí)現(xiàn)方式,在第三種可能實(shí)現(xiàn)方式中,控制節(jié)點(diǎn)向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令之前,還執(zhí)行:確定目標(biāo)計(jì)算節(jié)點(diǎn)的本地鏡像倉(cāng)庫(kù)中不存在目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。優(yōu)點(diǎn)在于,可以避免計(jì)算節(jié)點(diǎn)下載重復(fù)的基礎(chǔ)鏡像。
結(jié)合第一方面或第一方面的第一至第二種中任意一種可能實(shí)現(xiàn)方式,在第四種可能實(shí)現(xiàn)方式中,控制節(jié)點(diǎn)向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令之前,還執(zhí)行:確定目標(biāo)計(jì)算節(jié)點(diǎn)沒(méi)有正在下載基礎(chǔ)鏡像。優(yōu)點(diǎn)在于,可以避免計(jì)算節(jié)點(diǎn)下載重復(fù)的基礎(chǔ)鏡像。
本發(fā)明實(shí)施例第二方面提供了一種容器的啟動(dòng)方法,該方法實(shí)現(xiàn)于容器集群管理架構(gòu)中的管理節(jié)點(diǎn),容器集群管理架構(gòu)還包括遠(yuǎn)端鏡像倉(cāng)庫(kù)和至少一個(gè)計(jì)算節(jié)點(diǎn),該方法包括:獲知待啟動(dòng)的容器和容器的規(guī)格信息;查找其狀態(tài)信息滿足規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn);從查找的計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn);向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令,容器啟動(dòng)命令用于指示目標(biāo)計(jì)算節(jié)點(diǎn)使用已預(yù)先下載的基礎(chǔ)鏡像啟動(dòng)容器??梢宰岊A(yù)先下載有基礎(chǔ)鏡像的計(jì)算節(jié)點(diǎn)來(lái)啟動(dòng)容器,加快容器的啟動(dòng)時(shí)間。
在第二方面的第一種可能實(shí)現(xiàn)方式中,狀態(tài)信息包括計(jì)算節(jié)點(diǎn)的處理器使用率和內(nèi)存使用率。相應(yīng)的,管理節(jié)點(diǎn)查找其狀態(tài)信息滿足規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn)的具體操作為:查找其處理器使用率高于第一預(yù)設(shè)閾值,以及其內(nèi)存使用率高于第二預(yù)設(shè)閾值的計(jì)算節(jié)點(diǎn)。優(yōu)點(diǎn)在于,可以避免不滿足運(yùn)行條件的計(jì)算節(jié)點(diǎn)去啟動(dòng)容器,增強(qiáng)可行性。
在第二方面的第二種可能實(shí)現(xiàn)方式中,控制節(jié)點(diǎn)從查找的計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)之前,還執(zhí)行:根據(jù)各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息,確定各個(gè)計(jì)算節(jié)點(diǎn)的剩余資源。相應(yīng)的,控制節(jié)點(diǎn)從查找的計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)的具體操作為:從查找的計(jì)算節(jié)點(diǎn)中篩選出其剩余資源最高的已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)。優(yōu)點(diǎn)在于,可以優(yōu)先讓剩余資源最高的計(jì)算節(jié)點(diǎn)啟動(dòng)容器,提高計(jì)算節(jié)點(diǎn)的利用效率。
結(jié)合第二方面的第二種可能實(shí)現(xiàn)方式,在第三種可能實(shí)現(xiàn)方式中,控制節(jié)點(diǎn)根據(jù)各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息,確定各個(gè)計(jì)算節(jié)點(diǎn)的剩余資源之后,還執(zhí)行:若查找的計(jì)算節(jié)點(diǎn)中沒(méi)有已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn),則從中篩選出其剩余資源最高的計(jì)算節(jié)點(diǎn)作為目標(biāo)計(jì)算節(jié)點(diǎn)。
本發(fā)明實(shí)施例第三方面提供了一種基礎(chǔ)鏡像的刪除方法,該方法實(shí)現(xiàn)于容器集群管理架構(gòu)中的計(jì)算節(jié)點(diǎn),容器集群管理架構(gòu)還包括遠(yuǎn)端鏡像倉(cāng)庫(kù)和管理節(jié)點(diǎn),該方法包括:查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像;根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài);若是,則刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像??梢宰層?jì)算節(jié)點(diǎn)刪除基礎(chǔ)鏡像,以減少負(fù)荷。
在第三方面的第一種可能實(shí)現(xiàn)方式中,狀態(tài)信息包括處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。相應(yīng)的,計(jì)算節(jié)點(diǎn)根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài)的具體操作為:判斷處理器使用率是否高于第一預(yù)設(shè)閾值,內(nèi)存使用率是否高于第二預(yù)設(shè)閾值,且本地鏡像倉(cāng)庫(kù)使用率是否高于第三預(yù)設(shè)閾值。優(yōu)點(diǎn)在于,可以讓處于高負(fù)荷狀態(tài)的計(jì)算節(jié)點(diǎn)刪除基礎(chǔ)鏡像。
在第三方面的第一種可能實(shí)現(xiàn)方式中,計(jì)算節(jié)點(diǎn)刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像之前,還執(zhí)行:查詢未被使用過(guò)的基礎(chǔ)鏡像的閑置時(shí)長(zhǎng);按照基礎(chǔ)鏡像的閑置時(shí)長(zhǎng)由長(zhǎng)到短的順序,對(duì)基礎(chǔ)鏡像進(jìn)行排序。相應(yīng)的,計(jì)算節(jié)點(diǎn)刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像的具體操作為:按照排序結(jié)果的順序依次刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像,直到自身不處于高負(fù)荷狀態(tài)為止。優(yōu)點(diǎn)在于,可以讓計(jì)算節(jié)點(diǎn)優(yōu)先刪除閑置時(shí)長(zhǎng)較長(zhǎng)的基礎(chǔ)鏡像。
本發(fā)明實(shí)施例第四方面提供了一種管理節(jié)點(diǎn),所述管理節(jié)點(diǎn)具有實(shí)現(xiàn)上述第一方面提供的方法的行為功能,所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。
本發(fā)明實(shí)施例第五方面提供了一種管理節(jié)點(diǎn),所述管理節(jié)點(diǎn)具有實(shí)現(xiàn)上述第二方面提供的方法的行為功能,所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。
本發(fā)明實(shí)施例第六方面提供了一種計(jì)算節(jié)點(diǎn),所述管理節(jié)點(diǎn)具有實(shí)現(xiàn)上述第三方面提供的方法的行為功能,所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。
本發(fā)明實(shí)施例第七方面提供了一種管理節(jié)點(diǎn),包括通訊接口、處理器和存儲(chǔ)器,其中,存儲(chǔ)器中存儲(chǔ)一組程序,且處理器用于調(diào)用存儲(chǔ)器中存儲(chǔ)的程序,用于執(zhí)行以下操作:
獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,所述使用信息包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像;
從所有的所述計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn);
向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,所述預(yù)下載命令包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的標(biāo)識(shí),所述預(yù)下載命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
或者,用于執(zhí)行以下操作:
獲知待啟動(dòng)的容器和所述容器的規(guī)格信息;
查找其狀態(tài)信息滿足所述規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn);
從查找的所述計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn);
向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令,所述容器啟動(dòng)命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)使用所述已預(yù)先下載的基礎(chǔ)鏡像啟動(dòng)所述容器。
本發(fā)明實(shí)施例第八方面提供了一種計(jì)算節(jié)點(diǎn),包括通訊接口、處理器和存儲(chǔ)器,其中,存儲(chǔ)器中存儲(chǔ)一組程序,且處理器用于調(diào)用存儲(chǔ)器中存儲(chǔ)的程序,用于執(zhí)行以下操作:
查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像;
根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài);
若是,則刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
由上可見(jiàn),本發(fā)明實(shí)施例中的容器集群管理架構(gòu)包括管理節(jié)點(diǎn)、遠(yuǎn)端鏡像倉(cāng)庫(kù)以及至少一個(gè)計(jì)算節(jié)點(diǎn),管理節(jié)點(diǎn)先獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,使用信息包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像,接著從所有的計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn),然后向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,預(yù)下載命令用于指示目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載基礎(chǔ)鏡像,以便目標(biāo)計(jì)算節(jié)點(diǎn)后續(xù)直接使用預(yù)先下載好的基礎(chǔ)鏡像啟動(dòng)容器,從而實(shí)現(xiàn)加快容器的啟動(dòng)時(shí)間。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種基礎(chǔ)鏡像的下載方法的流程示意圖;
圖2是本發(fā)明實(shí)施例提供的一種容器的啟動(dòng)方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的一種基礎(chǔ)鏡像的刪除方法的流程示意圖;
圖4是本發(fā)明實(shí)施例提供的一種管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例提供的另一種管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的一種計(jì)算節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例提供的又一種管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖8是本發(fā)明實(shí)施例提供的另一種計(jì)算節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖9是本發(fā)明實(shí)施例提供的一種基礎(chǔ)鏡像下載的示意圖;
圖10是本發(fā)明實(shí)施例提供的一種容器集群管理架構(gòu)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖10是本發(fā)明實(shí)施例提供的一種容器集群管理架構(gòu)的結(jié)構(gòu)示意圖,如圖所示容器集群管理架構(gòu)至少包括管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)和遠(yuǎn)端鏡像倉(cāng)庫(kù),其相互之間建立有通訊連接。其中,管理節(jié)點(diǎn)是整個(gè)集群的中樞,主要負(fù)責(zé)與容器相關(guān)的管理、傳輸和調(diào)度;計(jì)算節(jié)點(diǎn)設(shè)有可存儲(chǔ)基礎(chǔ)鏡像的本地鏡像倉(cāng)庫(kù),主要負(fù)責(zé)使用基礎(chǔ)鏡像來(lái)啟動(dòng)容器;遠(yuǎn)端鏡像倉(cāng)庫(kù),主要負(fù)責(zé)向計(jì)算節(jié)點(diǎn)提供可下載的基礎(chǔ)鏡像。
圖1是本發(fā)明實(shí)施例中一種基礎(chǔ)鏡像的下載方法的流程示意圖,該方法實(shí)現(xiàn)于容器集群管理架構(gòu)中的管理節(jié)點(diǎn)。如圖所示本實(shí)施例中的基礎(chǔ)鏡像的下載方法的流程可以包括:
S101,獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,所述使用信息包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像和所述基礎(chǔ)鏡像的使用頻率。
其中,狀態(tài)信息用于表征計(jì)算節(jié)點(diǎn)的運(yùn)行狀態(tài),使用信息用于表征容器在歷史使用過(guò)程中的記錄。本發(fā)明實(shí)施例中,使用信息包括計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像和這些基礎(chǔ)鏡像的使用頻率。
應(yīng)理解的,由于所有的計(jì)算節(jié)點(diǎn)啟動(dòng)容器均需要管理節(jié)點(diǎn)來(lái)下達(dá)命令,因此管理節(jié)點(diǎn)得知所有的計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,這些信息保存在管理節(jié)點(diǎn)的容器調(diào)度模塊中。
具體的,管理節(jié)點(diǎn)通過(guò)與各個(gè)計(jì)算節(jié)點(diǎn)的通訊連接,獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息,以及通過(guò)查詢本地的容器調(diào)度模塊中的記錄,獲取各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息。
S102,按照所述基礎(chǔ)鏡像的使用頻率由高到低的順序,對(duì)各個(gè)所述計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像進(jìn)行排序。
例如:假設(shè)計(jì)算節(jié)點(diǎn)A曾啟動(dòng)過(guò)的容器使用過(guò)基礎(chǔ)鏡像x和基礎(chǔ)鏡像y,計(jì)算節(jié)點(diǎn)B曾啟動(dòng)過(guò)的容器使用過(guò)基礎(chǔ)鏡像x,計(jì)算節(jié)點(diǎn)C曾啟動(dòng)過(guò)的容器使用過(guò)基礎(chǔ)鏡像z,又假設(shè)基礎(chǔ)鏡像x的使用頻率為6次/小時(shí),基礎(chǔ)鏡像y的使用頻率為2次/小時(shí),基礎(chǔ)鏡像z的使用頻率為4次/小時(shí),那么基礎(chǔ)鏡像的排序結(jié)果為基礎(chǔ)鏡像x→基礎(chǔ)鏡像z→基礎(chǔ)鏡像y。
需要指出的是,管理節(jié)點(diǎn)對(duì)基礎(chǔ)鏡像進(jìn)行排序的優(yōu)點(diǎn)在于,可以讓計(jì)算節(jié)點(diǎn)優(yōu)先下載使用頻率較高的基礎(chǔ)鏡像,提高下載好的基礎(chǔ)鏡像被使用的概率。
S103,從所有的所述計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)。
可選的,所述狀態(tài)信息包括計(jì)算節(jié)點(diǎn)的處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。其中,處理器使用率是指CPU(Central Processing Unit,中央處理器)運(yùn)算資源的使用百分比,內(nèi)存使用率是指內(nèi)存資源的使用百分比,本地鏡像倉(cāng)庫(kù)使用率是指本地鏡像倉(cāng)庫(kù)的存儲(chǔ)百分比。應(yīng)理解的,計(jì)算節(jié)點(diǎn)的處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率越高,說(shuō)明該計(jì)算節(jié)點(diǎn)的負(fù)荷越高。
具體的,管理節(jié)點(diǎn)從所有的計(jì)算節(jié)點(diǎn)中,篩選出其處理器使用率低于第一預(yù)設(shè)閾值,其內(nèi)存使用率低于第二預(yù)設(shè)閾值,以及其本地鏡像倉(cāng)庫(kù)使用率低于第三預(yù)設(shè)閾值的目標(biāo)計(jì)算節(jié)點(diǎn)。本發(fā)明實(shí)施例中,第一預(yù)設(shè)閾值、第二預(yù)設(shè)閾值以及第三預(yù)設(shè)閾值可以由管理人員預(yù)先設(shè)定,其取值這里不作具體限定。例如:可以設(shè)定第一預(yù)設(shè)閾值、第二預(yù)設(shè)閾值和第三預(yù)設(shè)閾值分別為60%、60%和80%。
需要指出的是,篩選出狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)的優(yōu)點(diǎn)在于,可以避免狀態(tài)信息不滿足條件的計(jì)算節(jié)點(diǎn)去預(yù)先下載基礎(chǔ)鏡像,進(jìn)而避免下載失敗或超負(fù)荷的問(wèn)題。
還需要指出的是,由于狀態(tài)信息滿足預(yù)設(shè)條件的計(jì)算節(jié)點(diǎn)可以有多個(gè),因此篩選出的目標(biāo)計(jì)算節(jié)點(diǎn)也可以有多個(gè)。
S104,判斷所述目標(biāo)計(jì)算節(jié)點(diǎn)的本地鏡像倉(cāng)庫(kù)中是否存在所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
具體的,管理節(jié)點(diǎn)判斷目標(biāo)計(jì)算節(jié)點(diǎn)的本地鏡像倉(cāng)庫(kù)中是否存在其曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像,若判定為是,則結(jié)束,若判定為否,則執(zhí)行步驟S105。
例如:假設(shè)目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)基礎(chǔ)鏡像x、基礎(chǔ)鏡像y和基礎(chǔ)鏡像z,且當(dāng)前目標(biāo)計(jì)算節(jié)點(diǎn)的本地鏡像倉(cāng)庫(kù)中只存在基礎(chǔ)鏡像w,那么執(zhí)行步驟S105。
需要指出的是,判斷是否存在目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的優(yōu)點(diǎn)在于,可以避免計(jì)算節(jié)點(diǎn)下載重復(fù)的基礎(chǔ)鏡像。
S105,判斷所述目標(biāo)計(jì)算節(jié)點(diǎn)是否正在下載基礎(chǔ)鏡像。
具體的,管理節(jié)點(diǎn)判斷目標(biāo)計(jì)算節(jié)點(diǎn)是否正在下載基礎(chǔ)鏡像,若判定為是,則結(jié)束,若判定為否,則執(zhí)行步驟S106。
需要指出的是,判斷是否正在下載基礎(chǔ)鏡像的優(yōu)點(diǎn)在于,可以避免計(jì)算節(jié)點(diǎn)下載重復(fù)的基礎(chǔ)鏡像。
S106,向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,所述預(yù)下載命令包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的標(biāo)識(shí)和所述基礎(chǔ)鏡像的排序結(jié)果。
具體的,管理節(jié)點(diǎn)通過(guò)已建立的通訊連接向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,該預(yù)下載命令包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的標(biāo)識(shí)和基礎(chǔ)鏡像的排序結(jié)果,目標(biāo)計(jì)算節(jié)點(diǎn)在接收到預(yù)下載命令之后,預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)按照排序結(jié)果的順序下載曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
本發(fā)明實(shí)施例中的容器集群管理架構(gòu)包括管理節(jié)點(diǎn)、遠(yuǎn)端鏡像倉(cāng)庫(kù)以及至少一個(gè)計(jì)算節(jié)點(diǎn),管理節(jié)點(diǎn)先獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,使用信息包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的標(biāo)識(shí),接著從所有的計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn),然后向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,預(yù)下載命令用于指示目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載基礎(chǔ)鏡像,以便目標(biāo)計(jì)算節(jié)點(diǎn)后續(xù)直接使用預(yù)先下載好的基礎(chǔ)鏡像啟動(dòng)容器,從而實(shí)現(xiàn)加快容器的啟動(dòng)時(shí)間。
圖2是本發(fā)明實(shí)施例中一種容器的啟動(dòng)方法的流程示意圖,該方法實(shí)現(xiàn)于容器集群管理架構(gòu)中的管理節(jié)點(diǎn)。如圖所示本實(shí)施例中的容器的啟動(dòng)方法的流程可以包括:
S201,獲知待啟動(dòng)的容器和所述容器的規(guī)格信息。
具體的,管理節(jié)點(diǎn)獲取用戶或其它設(shè)備輸入的容器啟動(dòng)指令,該容器啟動(dòng)指令包括待啟動(dòng)的容器和該容器的規(guī)格信息。
S202,查找其狀態(tài)信息滿足所述規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn)。
其中,所述規(guī)格信息要求的運(yùn)行條件可以通過(guò)處理器的使用率和內(nèi)存使用率來(lái)表征,處理器的使用率和內(nèi)存使用率越大,運(yùn)行條件越好。也就是說(shuō),狀態(tài)信息可以包括計(jì)算節(jié)點(diǎn)的處理器使用率和內(nèi)存使用率。
具體的,管理節(jié)點(diǎn)查找其處理器使用率高于第一預(yù)設(shè)閾值,以及其內(nèi)存使用率高于第二預(yù)設(shè)閾值的計(jì)算節(jié)點(diǎn)。本發(fā)明實(shí)施例中,第一預(yù)設(shè)閾值和第二預(yù)設(shè)閾值可以由管理人員預(yù)先設(shè)定,其取值這里不作具體限定。
需要指出的是,管理節(jié)點(diǎn)查找滿足運(yùn)行條件的計(jì)算節(jié)點(diǎn)的優(yōu)點(diǎn)在于,可以避免不滿足運(yùn)行條件的計(jì)算節(jié)點(diǎn)去啟動(dòng)容器,增強(qiáng)可行性。
S203,判斷是否能從查找的所述計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)。
應(yīng)理解的,通過(guò)圖1所描述的實(shí)施例可知,部分計(jì)算節(jié)點(diǎn)預(yù)先下載有基礎(chǔ)鏡像。具體的,管理節(jié)點(diǎn)判斷是否能從查找的計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn),若判定為是,則執(zhí)行步驟S205,若判定為否,則執(zhí)行步驟S204。
可選的,在步驟S203之前,管理節(jié)點(diǎn)可以先根據(jù)各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息,確定各個(gè)計(jì)算節(jié)點(diǎn)的剩余資源,例如:假設(shè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息中,“處理器使用率為30%,內(nèi)存使用率為20%”,那么可以確定該技術(shù)節(jié)點(diǎn)的剩余資源為“處理器空閑率70%,內(nèi)存空閑率80%”。相應(yīng)的,管理節(jié)點(diǎn)篩選目標(biāo)計(jì)算節(jié)點(diǎn)的具體操作可以為:從查找的計(jì)算節(jié)點(diǎn)中篩選出其剩余資源最高的已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)。
需要指出的是,管理節(jié)點(diǎn)篩選出剩余資源最高的目標(biāo)計(jì)算節(jié)點(diǎn)的優(yōu)點(diǎn)在于,可以優(yōu)先讓剩余資源最高的計(jì)算節(jié)點(diǎn)啟動(dòng)容器,提高計(jì)算節(jié)點(diǎn)的利用效率。
S204,從查找的所述計(jì)算節(jié)點(diǎn)中篩選出剩余資源最高的計(jì)算節(jié)點(diǎn)作為目標(biāo)計(jì)算節(jié)點(diǎn)。
其中,剩余資源的介紹可以參閱步驟S203中的內(nèi)容,這里不作贅述。具體的,管理節(jié)點(diǎn)從查找的計(jì)算節(jié)點(diǎn)中篩選出剩余資源最高的計(jì)算節(jié)點(diǎn)作為目標(biāo)計(jì)算節(jié)點(diǎn)。
S205,向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令。
具體的,管理節(jié)點(diǎn)通過(guò)已建立的通訊連接向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令,目標(biāo)計(jì)算節(jié)點(diǎn)在接收到該容器啟動(dòng)命令之后,使用已預(yù)先下載的基礎(chǔ)鏡像啟動(dòng)容器。其中,使用的基礎(chǔ)鏡像是該容器所匹配的基礎(chǔ)鏡像,當(dāng)然,若該容器所匹配的基礎(chǔ)鏡像沒(méi)有被目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先下載下來(lái),則還需從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載其所匹配的基礎(chǔ)鏡像。
本發(fā)明實(shí)施例中的容器集群管理架構(gòu)包括管理節(jié)點(diǎn)、遠(yuǎn)端鏡像倉(cāng)庫(kù)以及至少一個(gè)計(jì)算節(jié)點(diǎn),管理節(jié)點(diǎn)先獲知待啟動(dòng)的容器和該容器的規(guī)格信息,再查找其狀態(tài)信息滿足規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn),接著從查找的計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn),然后向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令,可以實(shí)現(xiàn)讓預(yù)先下載有基礎(chǔ)鏡像的計(jì)算節(jié)點(diǎn)來(lái)啟動(dòng)容器,從而加快容器的啟動(dòng)時(shí)間。
圖3是本發(fā)明實(shí)施例中一種基礎(chǔ)鏡像的刪除方法的流程示意圖,該方法實(shí)現(xiàn)于容器集群管理架構(gòu)中的計(jì)算節(jié)點(diǎn)。如圖所示本實(shí)施例中的基礎(chǔ)鏡像的刪除方法的流程可以包括:
S301,查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
應(yīng)理解的,通過(guò)圖1所描述的實(shí)施例可知,部分計(jì)算節(jié)點(diǎn)預(yù)先下載有基礎(chǔ)鏡像。還應(yīng)理解的,計(jì)算節(jié)點(diǎn)會(huì)使用基礎(chǔ)鏡像啟動(dòng)容器,若某個(gè)基礎(chǔ)鏡像長(zhǎng)期未被使用,則說(shuō)明該基礎(chǔ)鏡像的使用頻率偏低。具體的,計(jì)算節(jié)點(diǎn)每間隔一個(gè)預(yù)設(shè)時(shí)間段,查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。其中,預(yù)設(shè)時(shí)間段可以由管理人員預(yù)先設(shè)定,其取值這里不作具體限定。
S302,根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài)。
可選的,所述狀態(tài)信息包括處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。具體的,計(jì)算節(jié)點(diǎn)根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài)的具體操作為:判斷處理器使用率是否高于第一預(yù)設(shè)閾值,內(nèi)存使用率是否高于第二預(yù)設(shè)閾值,且本地鏡像倉(cāng)庫(kù)使用率是否高于第三預(yù)設(shè)閾值。本發(fā)明實(shí)施例中,第一預(yù)設(shè)閾值、第二預(yù)設(shè)閾值以及第三預(yù)設(shè)閾值可以由管理人員預(yù)先設(shè)定,其取值這里不作具體限定。例如:可以設(shè)定第一預(yù)設(shè)閾值、第二預(yù)設(shè)閾值和第三預(yù)設(shè)閾值分別為70%、70%和90%。
S303,若是,則刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
具體的,計(jì)算節(jié)點(diǎn)若判定自身處于高負(fù)荷狀態(tài),則刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
可選的,在步驟S303之前,計(jì)算節(jié)點(diǎn)查詢未被使用過(guò)的基礎(chǔ)鏡像的閑置時(shí)長(zhǎng),并按照基礎(chǔ)鏡像的閑置時(shí)長(zhǎng)由長(zhǎng)到短的順序,對(duì)基礎(chǔ)鏡像進(jìn)行排序。相應(yīng)的,計(jì)算節(jié)點(diǎn)刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像的具體操作為:按照排序結(jié)果的順序依次刪除本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像,直到自身不處于高負(fù)荷狀態(tài)為止。
需要指出的是,計(jì)算節(jié)點(diǎn)按照排序結(jié)果的順序依次刪除基礎(chǔ)鏡像的優(yōu)點(diǎn)在于,可以優(yōu)先刪除閑置時(shí)長(zhǎng)較長(zhǎng)的基礎(chǔ)鏡像。
本發(fā)明實(shí)施例中的容器集群管理架構(gòu)包括管理節(jié)點(diǎn)、遠(yuǎn)端鏡像倉(cāng)庫(kù)以及至少一個(gè)計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)先查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像,接著根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài),然后在判定為是時(shí)刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像,可以讓處于高負(fù)荷狀態(tài)的計(jì)算節(jié)點(diǎn)刪除基礎(chǔ)鏡像,以減少負(fù)荷。
圖4是本發(fā)明實(shí)施例中一種管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖,該管理節(jié)點(diǎn)實(shí)現(xiàn)于容器集群管理架構(gòu),容器集群管理架構(gòu)還包括遠(yuǎn)端鏡像倉(cāng)庫(kù)和至少一個(gè)計(jì)算節(jié)點(diǎn)。如圖所示本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)至少可以包括信息獲取模塊410、節(jié)點(diǎn)篩選模塊420以及命令發(fā)送模塊430,其中:
信息獲取模塊410,用于獲取各個(gè)所述計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)所述計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,所述使用信息包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
節(jié)點(diǎn)篩選模塊420,用于從所有的所述計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)。
命令發(fā)送模塊430,用于向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,所述預(yù)下載命令包括所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的標(biāo)識(shí),所述預(yù)下載命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從所述遠(yuǎn)端鏡像倉(cāng)庫(kù)下載所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
可選的,所述使用信息還包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的使用頻率。相應(yīng)的,請(qǐng)參閱圖4,如圖所示本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)還可以包括鏡像排序模塊440,用于按照所述基礎(chǔ)鏡像的使用頻率由高到低的順序,對(duì)各個(gè)所述計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像進(jìn)行排序。
所述預(yù)下載命令還包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的排序結(jié)果,所述預(yù)下載命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從所述遠(yuǎn)端鏡像倉(cāng)庫(kù)按照所述排序結(jié)果的順序下載所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
又可選的,所述狀態(tài)信息包括所述計(jì)算節(jié)點(diǎn)的處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。相應(yīng)的,所述節(jié)點(diǎn)篩選模塊420,具體用于從所有的所述計(jì)算節(jié)點(diǎn)中,篩選出其處理器使用率低于第一預(yù)設(shè)閾值,其內(nèi)存使用率低于第二預(yù)設(shè)閾值,以及其本地鏡像倉(cāng)庫(kù)使用率低于第三預(yù)設(shè)閾值的目標(biāo)計(jì)算節(jié)點(diǎn)。
又可選的,請(qǐng)參閱圖4,如圖所示本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)還可以包括鏡像確定模塊450,用于確定所述目標(biāo)計(jì)算節(jié)點(diǎn)的本地鏡像倉(cāng)庫(kù)中不存在所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
又可選的,鏡像確定模塊450,還可以用于確定所述目標(biāo)計(jì)算節(jié)點(diǎn)沒(méi)有正在下載基礎(chǔ)鏡像。
圖5是本發(fā)明實(shí)施例中另一種管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖,該管理節(jié)點(diǎn)實(shí)現(xiàn)于容器集群管理架構(gòu),容器集群管理架構(gòu)還包括遠(yuǎn)端鏡像倉(cāng)庫(kù)和至少一個(gè)計(jì)算節(jié)點(diǎn)。如圖所示本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)至少可以包括:
信息獲知模塊510,用于獲知待啟動(dòng)的容器和所述容器的規(guī)格信息。
節(jié)點(diǎn)查找模塊520,用于查找其狀態(tài)信息滿足所述規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn)。
節(jié)點(diǎn)篩選模塊530,用于從查找的所述計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)。
命令發(fā)送模塊540,用于向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令,所述容器啟動(dòng)命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)使用所述已預(yù)先下載的基礎(chǔ)鏡像啟動(dòng)所述容器。
可選的,所述狀態(tài)信息包括所述計(jì)算節(jié)點(diǎn)的處理器使用率和內(nèi)存使用率。相應(yīng)的,所述節(jié)點(diǎn)查找模塊520,具體用于查找其處理器使用率高于第一預(yù)設(shè)閾值,以及其內(nèi)存使用率高于第二預(yù)設(shè)閾值的計(jì)算節(jié)點(diǎn)。
又可選的,請(qǐng)參閱圖5,如圖所示本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)還可以包括資源確定模塊550,用于根據(jù)各個(gè)所述計(jì)算節(jié)點(diǎn)的狀態(tài)信息,確定各個(gè)所述計(jì)算節(jié)點(diǎn)的剩余資源。相應(yīng)的,所述節(jié)點(diǎn)篩選模塊530,具體用于從查找的所述計(jì)算節(jié)點(diǎn)中篩選出其剩余資源最高的已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)。
又可選的,所述節(jié)點(diǎn)篩選模塊530,還用于若查找的所述計(jì)算節(jié)點(diǎn)中沒(méi)有已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn),則從中篩選出其剩余資源最高的計(jì)算節(jié)點(diǎn)作為目標(biāo)計(jì)算節(jié)點(diǎn)。
圖6是本發(fā)明實(shí)施例中一種計(jì)算節(jié)點(diǎn)的結(jié)構(gòu)示意圖,該計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)于容器集群管理架構(gòu),容器集群管理架構(gòu)還包括管理節(jié)點(diǎn)和遠(yuǎn)端鏡像倉(cāng)庫(kù)。如圖所示本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)至少可以包括:
鏡像查詢模塊610,用于查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
狀態(tài)判斷模塊620,用于根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài)。
鏡像刪除模塊630,用于若是,則刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
可選的,所述狀態(tài)信息包括處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。相應(yīng)的,所述狀態(tài)判斷模塊620,具體用于判斷處理器使用率是否高于第一預(yù)設(shè)閾值,內(nèi)存使用率是否高于第二預(yù)設(shè)閾值,且本地鏡像倉(cāng)庫(kù)使用率是否高于第三預(yù)設(shè)閾值。
又可選的,請(qǐng)參閱圖6,如圖所示本發(fā)明實(shí)施例中的計(jì)算節(jié)點(diǎn)還可以包括時(shí)長(zhǎng)查詢模塊640和鏡像排序模塊650,其中:
時(shí)長(zhǎng)查詢模塊640,用于查詢所述未被使用過(guò)的基礎(chǔ)鏡像的閑置時(shí)長(zhǎng)。
鏡像排序模塊650,用于按照所述基礎(chǔ)鏡像的閑置時(shí)長(zhǎng)由長(zhǎng)到短的順序,對(duì)所述基礎(chǔ)鏡像進(jìn)行排序。
相應(yīng)的,所述鏡像刪除模塊630,具體用于按照排序結(jié)果的順序依次刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像,直到自身不處于高負(fù)荷狀態(tài)為止。
圖7是本發(fā)明實(shí)施例中的又一種管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖,如圖7所示,該管理節(jié)點(diǎn)可以包括:至少一個(gè)處理器701,例如CPU,至少一個(gè)通信總線702,至少一個(gè)通訊接口703,存儲(chǔ)器704。其中,通信總線702用于實(shí)現(xiàn)這些組件之間的連接通信;通訊接口703、用于與其他節(jié)點(diǎn)設(shè)備進(jìn)行通訊;存儲(chǔ)器704可以是高速RAM存儲(chǔ)器,也可以是非易失的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。可選的,存儲(chǔ)器704還可以是至少一個(gè)位于遠(yuǎn)離前述處理器701的存儲(chǔ)裝置,存儲(chǔ)器704中存儲(chǔ)一組程序代碼。處理器701用于調(diào)用存儲(chǔ)器704中存儲(chǔ)的程序代碼,執(zhí)行以下操作:
獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,所述使用信息包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像;
從所有的所述計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn);
向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,所述預(yù)下載命令包括所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的標(biāo)識(shí),所述預(yù)下載命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從所述遠(yuǎn)端鏡像倉(cāng)庫(kù)下載所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
可選的,所述使用信息還包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的使用頻率。相應(yīng)的,處理器701從所有的所述計(jì)算節(jié)點(diǎn)中篩選出運(yùn)行狀況滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)之前,還執(zhí)行:
按照所述基礎(chǔ)鏡像的使用頻率由高到低的順序,對(duì)各個(gè)所述計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像進(jìn)行排序;
所述預(yù)下載命令還包括所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像的排序結(jié)果,所述預(yù)下載命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從所述遠(yuǎn)端鏡像倉(cāng)庫(kù)按照所述排序結(jié)果的順序下載所述曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
又可選的,所述狀態(tài)信息包括所述計(jì)算節(jié)點(diǎn)的處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。相應(yīng)的,處理器701從所有的所述計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn)的具體操作為:
從所有的所述計(jì)算節(jié)點(diǎn)中,篩選出其處理器使用率低于第一預(yù)設(shè)閾值,其內(nèi)存使用率低于第二預(yù)設(shè)閾值,以及其本地鏡像倉(cāng)庫(kù)使用率低于第三預(yù)設(shè)閾值的目標(biāo)計(jì)算節(jié)點(diǎn)。
又可選的,處理器701向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令之前,還執(zhí)行:
確定所述目標(biāo)計(jì)算節(jié)點(diǎn)的本地鏡像倉(cāng)庫(kù)中不存在所述目標(biāo)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像。
又可選的,處理器701向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令之前,還執(zhí)行:
確定所述目標(biāo)計(jì)算節(jié)點(diǎn)沒(méi)有正在下載基礎(chǔ)鏡像。
或者,處理器701用于調(diào)用存儲(chǔ)器704中存儲(chǔ)的程序代碼,執(zhí)行以下操作:
獲知待啟動(dòng)的容器和所述容器的規(guī)格信息;
查找其狀態(tài)信息滿足所述規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn);
從查找的所述計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn);
向所述目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送容器啟動(dòng)命令,所述容器啟動(dòng)命令用于指示所述目標(biāo)計(jì)算節(jié)點(diǎn)使用所述已預(yù)先下載的基礎(chǔ)鏡像啟動(dòng)所述容器。
可選的,所述狀態(tài)信息包括所述計(jì)算節(jié)點(diǎn)的處理器使用率和內(nèi)存使用率。相應(yīng)的,處理器701查找其狀態(tài)信息滿足所述規(guī)格信息要求的運(yùn)行條件的計(jì)算節(jié)點(diǎn)的具體操作為:
查找其處理器使用率高于第一預(yù)設(shè)閾值,以及其內(nèi)存使用率高于第二預(yù)設(shè)閾值的計(jì)算節(jié)點(diǎn)。
又可選的,處理器701從查找的所述計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)之前,還執(zhí)行:
根據(jù)各個(gè)所述計(jì)算節(jié)點(diǎn)的狀態(tài)信息,確定各個(gè)所述計(jì)算節(jié)點(diǎn)的剩余資源。
相應(yīng)的,處理器701從查找的所述計(jì)算節(jié)點(diǎn)中篩選出已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)的具體操作為:
從查找的所述計(jì)算節(jié)點(diǎn)中篩選出其剩余資源最高的已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn)。
又可選的,處理器701根據(jù)各個(gè)所述計(jì)算節(jié)點(diǎn)的狀態(tài)信息,確定各個(gè)所述計(jì)算節(jié)點(diǎn)的剩余資源之后,還執(zhí)行:
若查找的所述計(jì)算節(jié)點(diǎn)中沒(méi)有已預(yù)先下載有基礎(chǔ)鏡像的目標(biāo)計(jì)算節(jié)點(diǎn),則從中篩選出其剩余資源最高的計(jì)算節(jié)點(diǎn)作為目標(biāo)計(jì)算節(jié)點(diǎn)。
圖8是本發(fā)明實(shí)施例中的另一種計(jì)算節(jié)點(diǎn)的結(jié)構(gòu)示意圖,如圖8所示,該計(jì)算節(jié)點(diǎn)可以包括:至少一個(gè)處理器801,例如CPU,至少一個(gè)通信總線802,至少一個(gè)通訊接口803,存儲(chǔ)器804。其中,通信總線802用于實(shí)現(xiàn)這些組件之間的連接通信;通訊接口803、用于與其他節(jié)點(diǎn)設(shè)備進(jìn)行通訊;存儲(chǔ)器804可以是高速RAM存儲(chǔ)器,也可以是非易失的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器??蛇x的,存儲(chǔ)器804還可以是至少一個(gè)位于遠(yuǎn)離前述處理器801的存儲(chǔ)裝置,存儲(chǔ)器804中存儲(chǔ)一組程序代碼。處理器801用于調(diào)用存儲(chǔ)器804中存儲(chǔ)的程序代碼,執(zhí)行以下操作:
查詢本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像;
根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài);
若是,則刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像。
可選的,所述狀態(tài)信息包括處理器使用率、內(nèi)存使用率以及本地鏡像倉(cāng)庫(kù)使用率。相應(yīng)的,處理器801根據(jù)自身的狀態(tài)信息判斷自身是否處于高負(fù)荷狀態(tài)的具體操作為:
判斷處理器使用率是否高于第一預(yù)設(shè)閾值,內(nèi)存使用率是否高于第二預(yù)設(shè)閾值,且本地鏡像倉(cāng)庫(kù)使用率是否高于第三預(yù)設(shè)閾值。
又可選的,處理器801刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像之前,還執(zhí)行:
查詢所述未被使用過(guò)的基礎(chǔ)鏡像的閑置時(shí)長(zhǎng);
按照所述基礎(chǔ)鏡像的閑置時(shí)長(zhǎng)由長(zhǎng)到短的順序,對(duì)所述基礎(chǔ)鏡像進(jìn)行排序。
相應(yīng)的,處理器801刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像的具體操作為:
按照排序結(jié)果的順序依次刪除所述本地鏡像倉(cāng)庫(kù)中未被使用過(guò)的基礎(chǔ)鏡像,直到自身不處于高負(fù)荷狀態(tài)為止。
本發(fā)明實(shí)施例中的容器集群管理架構(gòu)包括管理節(jié)點(diǎn)、遠(yuǎn)端鏡像倉(cāng)庫(kù)以及至少一個(gè)計(jì)算節(jié)點(diǎn),管理節(jié)點(diǎn)先獲取各個(gè)計(jì)算節(jié)點(diǎn)的狀態(tài)信息和各個(gè)計(jì)算節(jié)點(diǎn)曾啟動(dòng)過(guò)的容器的使用信息,使用信息包括曾啟動(dòng)過(guò)的容器使用過(guò)的基礎(chǔ)鏡像,接著從所有的計(jì)算節(jié)點(diǎn)中篩選出其狀態(tài)信息滿足預(yù)設(shè)條件的目標(biāo)計(jì)算節(jié)點(diǎn),然后向目標(biāo)計(jì)算節(jié)點(diǎn)發(fā)送預(yù)下載命令,預(yù)下載命令用于指示目標(biāo)計(jì)算節(jié)點(diǎn)預(yù)先從遠(yuǎn)端鏡像倉(cāng)庫(kù)下載基礎(chǔ)鏡像,以便目標(biāo)計(jì)算節(jié)點(diǎn)后續(xù)直接使用預(yù)先下載好的基礎(chǔ)鏡像啟動(dòng)容器,從而實(shí)現(xiàn)加快容器的啟動(dòng)時(shí)間。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。