亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種跨主機(jī)的Docker容器通訊的方法與流程

文檔序號(hào):11523983閱讀:446來源:國(guó)知局
本發(fā)明涉及一種docker容器通訊方法,尤其涉及一種跨主機(jī)的docker容器通訊的方法。
背景技術(shù)
::目前,目前,現(xiàn)有的容器網(wǎng)絡(luò)方案有隧道方案、路由方案、cnm(dockerlibnetworkcontainernetworkmodel)陣營(yíng)、cni(containernetworkinterface)陣營(yíng)以及calico。其中,隧道方案在laas層的網(wǎng)絡(luò)應(yīng)用比較多,但隨著節(jié)點(diǎn)規(guī)模的增長(zhǎng)復(fù)雜度也會(huì)增長(zhǎng),導(dǎo)致網(wǎng)絡(luò)問題跟蹤起來比較麻煩,因此隧道方案在大規(guī)模集群中并不合適;cnm包括dockerswarmoverlay、macvlan&ipnetworkdrivers、calico、contiv(fromcisco),dockerlibnetwork的優(yōu)勢(shì)就是原生,而且和docker容器生命周期結(jié)合緊密,缺點(diǎn)也可以理解為是原生,被docker“綁架”;cni包括kubernetes、weave、macvlan、flannel、calico、contiv、mesoscni,cni的優(yōu)勢(shì)是兼容其他容器技術(shù)(e.g.rkt)及上層編排系統(tǒng)(kuberneres&mesos),而且社區(qū)活躍勢(shì)頭迅猛,kubernetes加上coreos主推,缺點(diǎn)是非docker原生;calico在cnm和cni兩大陣營(yíng)都有重要的作用。即有著不俗的性能表現(xiàn),提供了很好的隔離性,而且還有不錯(cuò)的acl控制能力。calico是一個(gè)純3層的數(shù)據(jù)中心網(wǎng)絡(luò)方案,而且無(wú)縫集成像openstack這種iaas云架構(gòu),能夠提供可控的vm、容器、裸機(jī)之間的ip通信。通過將整個(gè)互聯(lián)網(wǎng)的可擴(kuò)展ip網(wǎng)絡(luò)原則壓縮到數(shù)據(jù)中心級(jí)別,calico在每一個(gè)計(jì)算節(jié)點(diǎn)利用linuxkernel實(shí)現(xiàn)了一個(gè)高效的vrouter來負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā),而每個(gè)vrouter通過bgp協(xié)議負(fù)責(zé)把自己上運(yùn)行的workload的路由信息像整個(gè)calico網(wǎng)絡(luò)內(nèi)傳播——小規(guī)模部署可以直接互聯(lián),大規(guī)模下可通過指定的bgproutereflector來完成。這樣保證最終所有的workload之間的數(shù)據(jù)流量都是通過ip路由的方式完成互聯(lián)的。并且calico節(jié)點(diǎn)組網(wǎng)可以直接利用數(shù)據(jù)中心的網(wǎng)絡(luò)結(jié)構(gòu)(無(wú)論是l2或者l3),不需要額外的nat,隧道或者overlaynetwork。docker的網(wǎng)絡(luò)分為bridge、null、host、user-defined(bridge、overlay、macvlan、network、remote等)。默認(rèn)采用bridge,我們經(jīng)常使用dockerrun-psomeport:contaimerport來運(yùn)行容器,這樣可以通過宿主機(jī)的ip:someport來訪問容器內(nèi)的應(yīng)用,但是不同主機(jī)之間的容器卻不能互通,而我們的應(yīng)用往往需要多個(gè)容器關(guān)聯(lián),而這些容器很可能不在同一臺(tái)主機(jī)上。純粹的calico網(wǎng)絡(luò)能夠?qū)崿F(xiàn)不同主機(jī)之間的容器互通,但是目前不能使用dockerrun(-p)參數(shù),那么怎么采用暴露出容器的端口呢,必須手動(dòng)配置、管理復(fù)雜的iptables規(guī)則,簡(jiǎn)言之,創(chuàng)建一個(gè)容器需要添加數(shù)條iptables規(guī)則,停止、刪除一個(gè)容器需要?jiǎng)h除數(shù)條iptables規(guī)則技術(shù)實(shí)現(xiàn)要素:本發(fā)明提出了一種跨主機(jī)的docker容器通訊的方法,能夠克服現(xiàn)有calico在docker中使用時(shí),外部網(wǎng)絡(luò)無(wú)法訪問所述docker容器。將calico和dockerbridge相結(jié)合,彌補(bǔ)了calico在docker中的使用缺陷,同時(shí)解決了不同主機(jī)上的docker容器相互通訊的問題,從而解決了現(xiàn)有docker容器在網(wǎng)絡(luò)通訊上的問題。本發(fā)明的技術(shù)方案如下:一種跨主機(jī)的docker容器通訊的方法,包括以下步驟:s1:創(chuàng)建網(wǎng)絡(luò)模式為dockerbridge的docker容器;s2:向所述的docker容器上添加calico網(wǎng)絡(luò)配置;s3:刪除所述docker容器中所述calico的默認(rèn)路由;s4:為所述docker容器中所述calico相關(guān)路由添加策略路由。具體地,所述步驟s1具體為:s11:在安裝了docker環(huán)境的主機(jī)上執(zhí)行dockerrun命令,創(chuàng)建未導(dǎo)出端口的docker容器;s12:在安裝了docker環(huán)境的主機(jī)上執(zhí)行dockerrun–p命令,創(chuàng)建導(dǎo)出了指定端口的docker容器;s13:在安裝了docker環(huán)境的主機(jī)上調(diào)用創(chuàng)建docker容器的api接口;s14:根據(jù)需求,選擇性添加指定端口;創(chuàng)建所對(duì)應(yīng)的docker容器。具體地,所述步驟s2具體為:s21:在所述安裝了docker環(huán)境的主機(jī)上,調(diào)用向docker容器添加網(wǎng)絡(luò)的接口;s22:選擇相應(yīng)calico網(wǎng)絡(luò),添加到所述docker容器中。具體地,所述步驟s3具體為:s31:執(zhí)行相關(guān)終端命令iproutedeletedefaultvia<ip>,刪除所述calico的默認(rèn)路由。具體地,所述步驟s4具體為:s41:為所述docker容器中的calico網(wǎng)絡(luò)添加直連路由;s42:在所述s41步驟后,將所述docker容器的calico網(wǎng)絡(luò)添加到路由表中;s43:在所述s42步驟后,將所述docker容器的calico網(wǎng)絡(luò)所在網(wǎng)段添加規(guī)則,來自該網(wǎng)段的請(qǐng)求都走s42中所述的路由表;s44:配置去往所述docker容器的calico網(wǎng)絡(luò)的路由。綜上所述,本發(fā)明的有益效果是:本發(fā)明采用將calico和dockerbridge相結(jié)合的開發(fā)方式,彌補(bǔ)了calico在docker中不能映射端口的缺陷,同時(shí)解決了不同主機(jī)上的docker容器相互通訊的問題,使docker容器既能與外網(wǎng)通訊,又能與內(nèi)網(wǎng)中不同主機(jī)上的docker容器通訊。附圖說明圖1是本發(fā)明一種跨主機(jī)的docker容器通訊的方法的流程圖;圖2是本發(fā)明一種跨主機(jī)的docker容器通訊的方法的docker容器網(wǎng)絡(luò)通訊級(jí)泵的示意圖;圖3是本發(fā)明一種跨主機(jī)的docker容器通訊的方法的多主機(jī)或集群網(wǎng)絡(luò)通訊示意圖具體實(shí)施方式為了使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的例圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了方便對(duì)本發(fā)明的理解,首先介紹一下基本概念:云計(jì)算:是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。狹義云計(jì)算指it基礎(chǔ)設(shè)施的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需資源;廣義云計(jì)算指服務(wù)的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需服務(wù)。這種服務(wù)可以是it和軟件、互聯(lián)網(wǎng)相關(guān),也可以是其他服務(wù)。容器:容器是伴隨著輕量級(jí)虛擬化的發(fā)展而誕生的。在傳統(tǒng)的虛擬化技術(shù)中,由于底層平臺(tái)的不同,開發(fā)人員花費(fèi)大量的精力去關(guān)注資源、網(wǎng)絡(luò)等等細(xì)節(jié)配置,降低了開發(fā)效率,增加了復(fù)雜度和遷移壁壘。容器技術(shù)位于裸機(jī)或底層操作系統(tǒng)與上層應(yīng)用之間,屏蔽了底層操作系統(tǒng)的細(xì)節(jié),對(duì)于應(yīng)用開發(fā)者展現(xiàn)出一致的接口。這樣開發(fā)人員就不需要再關(guān)注與底層之間的調(diào)用對(duì)接、受限于不同的操作系統(tǒng)。宿主機(jī):可以提供資源運(yùn)行多個(gè)容器的一個(gè)服務(wù)器主機(jī)實(shí)例,宿主機(jī)是一臺(tái)物理服務(wù)器,也可以是一臺(tái)虛擬服務(wù)器。容器網(wǎng)絡(luò):連接云計(jì)算系統(tǒng)中所有容器實(shí)例的整個(gè)網(wǎng)絡(luò)。如圖1所示,一種跨主機(jī)的docker容器通訊的方法,包括以下步驟:s1:創(chuàng)建網(wǎng)絡(luò)模式為dockerbridge的docker容器;s2:向所述的docker容器上添加calico網(wǎng)絡(luò)配置;s3:刪除所述docker容器中所述calico的默認(rèn)路由;s4:為所述docker容器中所述calico添加策略路由。在本發(fā)明中,通過在網(wǎng)絡(luò)模式為bridge的docker容器上添加calico網(wǎng)絡(luò)配置,并且刪除所述calico的默認(rèn)路由,解決bridge和calico之間的沖突,再在所述calico上添加策略路由,使所述docker容器具有了與不同主機(jī)上的docker容器網(wǎng)絡(luò)互通的能力,由于dockerbridge本身具有與外網(wǎng)通訊的能力,因此所述容器就具有了即能與外網(wǎng)通訊,又能與不同主機(jī)上的docker容器通訊的能力。如圖2圖3所示,,容器網(wǎng)絡(luò)利用本發(fā)明通訊的情況,具體地為,docker容器與外網(wǎng)通訊時(shí),使用dockerbridge網(wǎng)絡(luò)模式,將docker容器端口導(dǎo)出,是其與外網(wǎng)實(shí)現(xiàn)互通,而docker容器中的calico網(wǎng)絡(luò)又使docker容器可與所述calico網(wǎng)絡(luò)所在網(wǎng)段中的所有其他docker容器互通。具體地,所述步驟s1具體為:s11:在安裝了docker環(huán)境的主機(jī)上執(zhí)行dockerrun命令,創(chuàng)建未導(dǎo)出端口的docker容器;s12:在安裝了docker環(huán)境的主機(jī)上執(zhí)行dockerrun–p命令,創(chuàng)建導(dǎo)出了指定端口的docker容器;s13:在安裝了docker環(huán)境的主機(jī)上調(diào)用創(chuàng)建docker容器的api接口;s14:根據(jù)需求,選擇性添加指定端口;創(chuàng)建所對(duì)應(yīng)的docker容器。具體地,所述步驟s2具體為:s21:在所述安裝了docker環(huán)境的主機(jī)上,調(diào)用向docker容器添加網(wǎng)絡(luò)的接口;s22:選擇相應(yīng)calico網(wǎng)絡(luò),添加到所述docker容器中。具體地,所述步驟s3具體為:s31:執(zhí)行相關(guān)終端命令,刪除所述calico的默認(rèn)路由。具體地,所述步驟s4具體為:s41:為所述docker容器中的calico網(wǎng)絡(luò)添加直連路由;s42:將所述docker容器的calico網(wǎng)絡(luò)添加到路由表中;s43:將所述docker容器的calico網(wǎng)絡(luò)所在網(wǎng)段添加規(guī)則,來自該網(wǎng)段的請(qǐng)求都走s32中所述的路由表;s44:配置去往所述docker容器的calico網(wǎng)絡(luò)的路由。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域
:的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)該視為本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1