欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種高安全docker容器批量部署方法及裝置與流程

文檔序號(hào):11276063閱讀:554來(lái)源:國(guó)知局

本發(fā)明涉及docker容器的自動(dòng)部署技術(shù)領(lǐng)域,特別涉及一種高安全docker容器批量部署方法及裝置。



背景技術(shù):

docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。

docker核心解決的問(wèn)題是利用lxc來(lái)實(shí)現(xiàn)類似vm的功能,從而利用更加節(jié)省的硬件資源提供給用戶更多的計(jì)算資源。同vm的方式不同,lxc其并不是一套硬件虛擬化方法-無(wú)法歸屬到全虛擬化、部分虛擬化和半虛擬化中的任意一個(gè),而是一個(gè)操作系統(tǒng)級(jí)虛擬化方法,理解起來(lái)可能并不像vm那樣直觀。

用戶需要考慮虛擬化方法,尤其是硬件虛擬化方法,需要借助其解決的主要是以下4個(gè)問(wèn)題:

隔離性:每個(gè)用戶實(shí)例之間相互隔離,互不影響。硬件虛擬化方法給出的方法是vm,lxc給出的方法是container,更細(xì)一點(diǎn)是kernelnamespace。

可配額/可度量:每個(gè)用戶實(shí)例可以按需提供其計(jì)算資源,所使用的資源可以被計(jì)量。硬件虛擬化方法因?yàn)樘摂M了cpu,memory可以方便實(shí)現(xiàn),lxc則主要是利用cgroups來(lái)控制資源。

移動(dòng)性:用戶的實(shí)例可以很方便地復(fù)制、移動(dòng)和重建。硬件虛擬化方法提供snapshot和image來(lái)實(shí)現(xiàn),docker(主要)利用aufs實(shí)現(xiàn)。

安全性:這里強(qiáng)調(diào)是host主機(jī)的角度盡量保護(hù)container。硬件虛擬化的方法因?yàn)樘摂M化的水平比較高,用戶進(jìn)程都是在kvm等虛擬機(jī)容器中翻譯運(yùn)行的,然而對(duì)于lxc,用戶的進(jìn)程是lxc-start進(jìn)程的子進(jìn)程,只是在kernel的namespace中隔離的,因此需要一些kernel的patch來(lái)保證用戶的運(yùn)行環(huán)境不會(huì)受到來(lái)自host主機(jī)的惡意入侵,dotcloud是利用kernelgrsecpatch解決的。

目前,linux操作系統(tǒng)中,所有容器運(yùn)行的是相同的強(qiáng)制訪問(wèn)控制類型(即selinux類型,如svirt_lxc_net_t),該類別允許所有網(wǎng)絡(luò)端口都能處于監(jiān)聽(tīng)狀態(tài),也允許所有網(wǎng)絡(luò)端口都能對(duì)外發(fā)起連接。對(duì)于容器而言,例如,在一個(gè)容器中運(yùn)行某個(gè)服務(wù)程序,一旦該服務(wù)程序被成功入侵,該服務(wù)程序進(jìn)程將會(huì)連接任何網(wǎng)絡(luò)端口并成為制造垃圾信息的機(jī)器人,也可能會(huì)通過(guò)網(wǎng)絡(luò)攻擊其他宿主機(jī)和容器,這便為容器留下了不可否認(rèn)的安全問(wèn)題。

docker容器的安全問(wèn)題本質(zhì)上就是容器技術(shù)的安全性問(wèn)題,安全性問(wèn)題90%以上可以歸結(jié)為隔離性問(wèn)題,docker容器的隔離性主要運(yùn)用namespace技術(shù)。namespace技術(shù)是linux操作系統(tǒng)提供的一種內(nèi)核級(jí)別環(huán)境隔離的方法,但是,雖然docker容器可通過(guò)namespace的方式分隔出看似是獨(dú)立的空間,然而linux操作系統(tǒng)內(nèi)核卻不能通過(guò)namespace的方式分隔,所以即使docker容器具有多個(gè)獨(dú)立的空間(container),但由于所有的linux操作系統(tǒng)調(diào)用其實(shí)都是通過(guò)主機(jī)的內(nèi)核處理,所以最終還是會(huì)為docker容器留下安全隱患。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明針對(duì)docker容器部署過(guò)程中存在的安全隱患,以及在批量docker容器部署的效率低下的問(wèn)題上,提出一種高安全docker容器批量部署方法及裝置。

本發(fā)明提出一種高安全docker容器批量部署方法,包括:

步驟1,獲取集群中每臺(tái)物理機(jī)的cpu核數(shù)、cpu的利用率、內(nèi)存使用率、帶寬的使用率;

步驟2,根據(jù)所述cpu的利用率、所述內(nèi)存使用率、所述帶寬的使用率,為每臺(tái)物理機(jī)計(jì)算權(quán)值,根據(jù)所述所述權(quán)值,計(jì)算需部署docker容器的個(gè)數(shù);

步驟3,根據(jù)需部署docker容器的個(gè)數(shù),并行創(chuàng)建docker容器。

所述步驟2中計(jì)算所述權(quán)值的公式為:

qi=(1-pi)+(1-mi)+(1-wi)

其中pi為所述cpu的利用率,mi為所述內(nèi)存使用率,wi為所述帶寬的使用率,i為第i個(gè)物理機(jī)。

所述步驟2中計(jì)算需部署docker容器的個(gè)數(shù)的公式為:

其中n為n個(gè)docker容器,qi為所述權(quán)值,i第i個(gè)物理機(jī),i為物理機(jī)的總個(gè)數(shù)。

所述步驟3包括采用創(chuàng)建多進(jìn)程的方式創(chuàng)建docker容器容器,其中進(jìn)程的個(gè)數(shù)與相對(duì)應(yīng)的物理機(jī)的所述cpu核數(shù)相同。

所述步驟3還包括為docker容器中的鏡像定義強(qiáng)制訪問(wèn)控制策略;在docker容器創(chuàng)建時(shí),將強(qiáng)制訪問(wèn)控制策略嵌入鏡像中的元數(shù)據(jù)中。

本發(fā)明還提出一種高安全docker容器批量部署裝置,包括:

獲取信息模塊,用于獲取集群中每臺(tái)物理機(jī)的cpu核數(shù)、cpu的利用率、內(nèi)存使用率、帶寬的使用率;

計(jì)算模塊,用于根據(jù)所述cpu的利用率、所述內(nèi)存使用率、所述帶寬的使用率,為每臺(tái)物理機(jī)計(jì)算權(quán)值,根據(jù)所述所述權(quán)值,計(jì)算需部署docker容器的個(gè)數(shù);

部署模塊,用于根據(jù)需部署docker容器的個(gè)數(shù),并行創(chuàng)建docker容器。

所述計(jì)算模塊中計(jì)算所述權(quán)值的公式為:

qi=(1-pi)+(1-mi)+(1-wi)

其中pi為所述cpu的利用率,mi為所述內(nèi)存使用率,wi為所述帶寬的使用率,i為第i個(gè)物理機(jī)。

所述計(jì)算模塊中計(jì)算需部署docker容器的個(gè)數(shù)的公式為:

其中n為n個(gè)docker容器,qi為所述權(quán)值,i第i個(gè)物理機(jī),i為物理機(jī)的總個(gè)數(shù)。

所述部署模塊包括采用創(chuàng)建多進(jìn)程的方式創(chuàng)建docker容器容器,其中進(jìn)程的個(gè)數(shù)與相對(duì)應(yīng)的物理機(jī)的所述cpu核數(shù)相同。

所述部署模塊還包括為docker容器中的鏡像定義強(qiáng)制訪問(wèn)控制策略;在docker容器創(chuàng)建時(shí),將強(qiáng)制訪問(wèn)控制策略嵌入鏡像中的元數(shù)據(jù)中。

由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:

本發(fā)明在需要批量部署docker容器的場(chǎng)景下,能夠提升部署效率,減小部署時(shí)間,另外,本發(fā)明解決了docker容器的安全性問(wèn)題,部署出的容器具有高安全性。

附圖說(shuō)明

圖1是本發(fā)明流程圖。

具體實(shí)施方式

本發(fā)明在現(xiàn)有docker容器創(chuàng)建方法的基礎(chǔ)上,基于cpu核數(shù)和cpu利用率提升批量docker容器的部署效率,同時(shí)考慮到內(nèi)存、網(wǎng)絡(luò)因素,并且為創(chuàng)建的每個(gè)容器中的鏡像定義強(qiáng)制訪問(wèn)控制策略,使開(kāi)啟docker容器中的進(jìn)程時(shí)使用強(qiáng)制訪問(wèn)控制策略來(lái)加強(qiáng)docker容器的安全性。

如圖1所示,為實(shí)現(xiàn)上述目的,本發(fā)明的一種高安全docker容器批量部署方法包括下列步驟:

a.獲取集群物理機(jī)的cpu核數(shù),其實(shí)現(xiàn)方法為:

a1.統(tǒng)計(jì)集群物理機(jī)的個(gè)數(shù)n;

a2.獲取集群中每個(gè)物理的cpu的個(gè)數(shù);

a3.獲取每個(gè)物理cpu的核數(shù);

a4.計(jì)算獲取每臺(tái)物理機(jī)的cpu的總的核數(shù)ci,其中總核數(shù)=物理cpu個(gè)數(shù)×每顆物理cpu的核數(shù)。

b.獲取集群物理機(jī)的cpu的利用率,其實(shí)現(xiàn)方法為:

b1.獲取參數(shù)user:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,處于用戶態(tài)的運(yùn)行時(shí)間,不包含nice值為負(fù)進(jìn)程;

b2.獲取參數(shù)nice:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,nice值為負(fù)的進(jìn)程所占用的cpu時(shí)間;

b3.獲取參數(shù)system:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,處于核心態(tài)的運(yùn)行時(shí)間;

b4.獲取參數(shù)idle:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,除io等待時(shí)間以外的其它等待時(shí)間iowait從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,io等待時(shí)間;

b5.利用公式計(jì)算cpu利用率:

p=100*(user+nice+system)/(user+nice+system+idle);計(jì)算出集群中每臺(tái)物理機(jī)的cpu的利用率pi。

c.獲取集群中每臺(tái)物理機(jī)的內(nèi)存使用情況:首先獲取空閑內(nèi)存量memfree,然后獲取內(nèi)存總量memtotal,利用公式計(jì)算內(nèi)存使用率mi:

mi=1-memfree/memtotal

d.獲取集群中每臺(tái)物理機(jī)的網(wǎng)絡(luò)使用情況:統(tǒng)計(jì)一段時(shí)間內(nèi)receive和tramsmit的bytes數(shù)的變化,即可獲得網(wǎng)口傳輸速率,再除以網(wǎng)口的帶寬就得到帶寬的使用率wi。

e.利用每臺(tái)物理機(jī)的cpu利用率,內(nèi)存使用率,帶寬使用率,為每臺(tái)物理機(jī)計(jì)算一個(gè)權(quán)值qi,其中i為第i個(gè)物理機(jī);

qi=(1-pi)+(1-mi)+(1-wi)

f.若要批量部署創(chuàng)建n個(gè)docker容器,那么在集群中的各物理機(jī)上應(yīng)該部署的docker容器的個(gè)數(shù)ni通過(guò)公式計(jì)算出來(lái),其公式為:

由上述公式計(jì)算出集群中每臺(tái)物理機(jī)需要?jiǎng)?chuàng)建的容器的個(gè)數(shù)ni。

g.根據(jù)f中得出的集群中每臺(tái)物理機(jī)需要?jiǎng)?chuàng)建的容器的個(gè)數(shù)ni,并行的創(chuàng)建容器,采用創(chuàng)建多進(jìn)程的方式創(chuàng)建所需創(chuàng)建的容器,進(jìn)程的個(gè)數(shù)與該物理機(jī)的cpu的核數(shù)ci相同。

h.創(chuàng)建每個(gè)容器的過(guò)程如下:為docker容器中的鏡像定義強(qiáng)制訪問(wèn)控制策略,以使開(kāi)啟docker容器中的進(jìn)程時(shí)使用強(qiáng)制訪問(wèn)控制策略;在docker容器創(chuàng)建時(shí),將強(qiáng)制訪問(wèn)控制策略嵌入鏡像中的元數(shù)據(jù)中。該docker容器的創(chuàng)建方法能使進(jìn)程中運(yùn)行鏡像時(shí)能使用該強(qiáng)制訪問(wèn)控制策略,從而避免了主機(jī)內(nèi)核在不同的系統(tǒng)調(diào)用中運(yùn)行docker容器中的進(jìn)程時(shí)對(duì)docker容器的安全形成威脅,加強(qiáng)了docker容器的安全性;同時(shí)還簡(jiǎn)化了系統(tǒng)調(diào)用或訪問(wèn)docker容器中的進(jìn)程時(shí)的強(qiáng)制訪問(wèn)控制過(guò)程。

下面更進(jìn)一步描述本發(fā)明步驟,本發(fā)明的目標(biāo)是提升批量創(chuàng)建docker容器的效率,創(chuàng)建出來(lái)的容器具有高安全性。詳細(xì)實(shí)施步驟包含執(zhí)行:a、獲取集群物理機(jī)的cpu核數(shù);b、獲取集群物理機(jī)的cpu的利用率;c、計(jì)算各物理機(jī)需要?jiǎng)?chuàng)建容器的個(gè)數(shù);d、并行創(chuàng)建高安全性容器。具體的一種實(shí)施方式如下:

a.獲取集群物理機(jī)的cpu核數(shù),其實(shí)現(xiàn)方法為:

a1.通過(guò)shell腳本統(tǒng)計(jì)集群物理機(jī)的個(gè)數(shù)n;

a2.通過(guò)shell腳本獲取集群中每個(gè)物理的cpu的個(gè)數(shù);

a3.通過(guò)shell腳本獲取每個(gè)物理cpu的核數(shù);

a4.計(jì)算獲取每臺(tái)物理機(jī)的cpu的總的核數(shù)ci,其中總核數(shù)=物理cpu個(gè)數(shù)×每顆物理cpu的核數(shù)。

b.獲取集群物理機(jī)的cpu的利用率,其實(shí)現(xiàn)方法為:

b1.從linux系統(tǒng)/proc/stat文件中獲取參數(shù)user:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,處于用戶態(tài)的運(yùn)行時(shí)間,不包含nice值為負(fù)進(jìn)程;

b2.從linux系統(tǒng)/proc/stat文件中獲取參數(shù)nice:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,nice值為負(fù)的進(jìn)程所占用的cpu時(shí)間;

b3.從linux系統(tǒng)/proc/stat文件中獲取參數(shù)system:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,處于核心態(tài)的運(yùn)行時(shí)間;

b4.從linux系統(tǒng)/proc/stat文件中獲取參數(shù)idle:從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,除io等待時(shí)間以外的其它等待時(shí)間iowait從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻,io等待時(shí)間;

b5.利用公式計(jì)算cpu利用率:

p=100*(user+nice+system)/(user+nice+system+idle);計(jì)算出集群中每臺(tái)物理機(jī)的cpu的利用率pi。

c.獲取集群中每臺(tái)物理機(jī)的內(nèi)存使用情況:首先獲取空閑內(nèi)存量memfree,然后獲取內(nèi)存總量memtotal。利用公式計(jì)算內(nèi)存使用率mi:

mi=1-memfree/memtotal

d.獲取集群中每臺(tái)物理機(jī)的網(wǎng)絡(luò)使用情況:統(tǒng)計(jì)一段時(shí)間內(nèi)receive和tramsmit的bytes數(shù)的變化,即可獲得網(wǎng)口傳輸速率,再除以網(wǎng)口的帶寬就得到帶寬的使用率wi。

e.利用每臺(tái)物理機(jī)的cpu利用率,內(nèi)存使用率,帶寬使用率,為每臺(tái)物理機(jī)計(jì)算一個(gè)權(quán)值qi:

qi=(1-pi)+(1-mi)+(1-wi)

f.若要批量部署創(chuàng)建n個(gè)docker容器,那么在集群中的各物理機(jī)上應(yīng)該部署的docker容器的個(gè)數(shù)ni通過(guò)公式計(jì)算出來(lái),其公式為:

由上述公式計(jì)算出集群中每臺(tái)物理機(jī)需要?jiǎng)?chuàng)建的容器的個(gè)數(shù)ni;

g.并行創(chuàng)建高安全性容器。其實(shí)現(xiàn)方法如下:

g1.根據(jù)c中得出的集群中每臺(tái)物理機(jī)需要?jiǎng)?chuàng)建的容器的個(gè)數(shù)ni,并行的創(chuàng)建容器,采用創(chuàng)建多線程的方式創(chuàng)建所需創(chuàng)建的容器。線程的個(gè)數(shù)與該物理機(jī)的cpu的核數(shù)ci相同。

g2.創(chuàng)建每個(gè)容器的過(guò)程如下:為docker容器中的鏡像定義強(qiáng)制訪問(wèn)控制策略,以使開(kāi)啟docker容器中的進(jìn)程時(shí)使用強(qiáng)制訪問(wèn)控制策略;在docker容器創(chuàng)建時(shí),將強(qiáng)制訪問(wèn)控制策略嵌入鏡像中的元數(shù)據(jù)中。該docker容器的創(chuàng)建方法能使進(jìn)程中運(yùn)行鏡像時(shí)能使用該強(qiáng)制訪問(wèn)控制策略,從而避免了主機(jī)內(nèi)核在不同的系統(tǒng)調(diào)用中運(yùn)行docker容器中的進(jìn)程時(shí)對(duì)docker容器的安全形成威脅,加強(qiáng)了docker容器的安全性;同時(shí)還簡(jiǎn)化了系統(tǒng)調(diào)用或訪問(wèn)docker容器中的進(jìn)程時(shí)的強(qiáng)制訪問(wèn)控制過(guò)程。

本發(fā)明還提出一種高安全docker容器批量部署裝置,包括:

獲取信息模塊,用于獲取集群中每臺(tái)物理機(jī)的cpu核數(shù)、cpu的利用率、內(nèi)存使用率、帶寬的使用率;

計(jì)算模塊,用于根據(jù)所述cpu的利用率、所述內(nèi)存使用率、所述帶寬的使用率,為每臺(tái)物理機(jī)計(jì)算權(quán)值,根據(jù)所述所述權(quán)值,計(jì)算需部署docker容器的個(gè)數(shù);

部署模塊,用于根據(jù)需部署docker容器的個(gè)數(shù),并行創(chuàng)建docker容器。

所述計(jì)算模塊中計(jì)算所述權(quán)值的公式為:

qi=(1-pi)+(1-mi)+(1-wi)

其中pi為所述cpu的利用率,mi為所述內(nèi)存使用率,wi為所述帶寬的使用率,i為第i個(gè)物理機(jī)。

所述計(jì)算模塊中計(jì)算需部署docker容器的個(gè)數(shù)的公式為:

其中n為n個(gè)docker容器,qi為所述權(quán)值,i第i個(gè)物理機(jī),i為物理機(jī)的總個(gè)數(shù)。

所述部署模塊包括采用創(chuàng)建多進(jìn)程的方式創(chuàng)建docker容器容器,其中進(jìn)程的個(gè)數(shù)與相對(duì)應(yīng)的物理機(jī)的所述cpu核數(shù)相同。

所述部署模塊還包括為docker容器中的鏡像定義強(qiáng)制訪問(wèn)控制策略;在docker容器創(chuàng)建時(shí),將強(qiáng)制訪問(wèn)控制策略嵌入鏡像中的元數(shù)據(jù)中。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
杨浦区| 航空| 五华县| 阳泉市| 五华县| 尉氏县| 黑水县| 沙雅县| 扎鲁特旗| 荥经县| 鄯善县| 江西省| 汝州市| 海宁市| 聂拉木县| 忻州市| 涿鹿县| 舟山市| 三河市| 厦门市| 冀州市| 赣榆县| 克什克腾旗| 凤山市| 清河县| 蓝田县| 金沙县| 宁都县| 阳泉市| 泉州市| 泸西县| 盘锦市| 汝南县| 台前县| 荔波县| 贡觉县| 百色市| 宁明县| 曲沃县| 巴林右旗| 囊谦县|