本篇內(nèi)容介紹了“Docker容器有什么技術(shù)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)主營(yíng)于洪網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),于洪h5微信小程序搭建,于洪網(wǎng)站營(yíng)銷(xiāo)推廣歡迎于洪等地區(qū)企業(yè)咨詢(xún)
容器技術(shù)是操作系統(tǒng)層面的一種虛擬化技術(shù)。在Linux系統(tǒng)下,容器能夠利用Namespaces、AppArmor、SELinux配置、Chroot以及CGroups等內(nèi)核功能,交付一套類(lèi)似于虛擬機(jī)的隔離性環(huán)境。經(jīng)過(guò)不斷的發(fā)展,容器技術(shù)所帶來(lái)的輕量級(jí)、隔離性、標(biāo)準(zhǔn)化以及可大規(guī)模部署的特性促生了微服務(wù)和云原生應(yīng)用的普及和發(fā)展。
Docker容器
毫無(wú)疑問(wèn),Docker是目前最具人氣且應(yīng)用最為廣泛的容器技術(shù)。為什么呢?作者總結(jié)了以下主要的兩個(gè)原因。
1、和早期容器技術(shù)不同,Docker不只是針對(duì)了應(yīng)用對(duì)主機(jī)資源的共享和隔離,它更加關(guān)注應(yīng)用的微服務(wù)化,大規(guī)模部署和管理自動(dòng)化。微服務(wù)和云原生應(yīng)用的發(fā)展極大的提高了Docker技術(shù)的大眾接受程度。
Docker所采用的分層鏡像模型讓Docker對(duì)應(yīng)用環(huán)境的封裝更加輕量級(jí)和標(biāo)準(zhǔn)化,讓鏡像更加容易的共享和分發(fā),極大的簡(jiǎn)化了大規(guī)模部署和運(yùn)維的難度。
Docker鏡像模型的Copyon Write機(jī)制和Volume機(jī)制合理的滿足和促進(jìn)了應(yīng)用的無(wú)狀態(tài)化和微服務(wù)化。
Docker提倡一個(gè)應(yīng)用(進(jìn)程)一個(gè)容器,符合微服務(wù)的理念。
2、Docker不只是一個(gè)工具包,圍繞它的是一整套生態(tài)系統(tǒng)。包括鏡像庫(kù)、容器管理調(diào)度、網(wǎng)絡(luò)、存儲(chǔ)、安全。這一整套生態(tài)系統(tǒng)讓?xiě)?yīng)用采用容器技術(shù)進(jìn)行大規(guī)模的封裝,部署,運(yùn)維,管理成為可能。
容器的特性如何在生產(chǎn)環(huán)境中發(fā)揮所長(zhǎng),還需要其生態(tài)圈中一系列的工具、產(chǎn)品和方案作以支撐。以下我們會(huì)對(duì)Docker以及它代表的容器技術(shù)生態(tài)系統(tǒng)做進(jìn)一步的介紹。
容器生態(tài)圈
下圖中的內(nèi)容就是容器生態(tài)圈中的各個(gè)組件,我們將會(huì)從下至上逐一分層解析。
1、容器OS
容器OS并不是運(yùn)行容器的必要條件,容器也可以運(yùn)行在通用Linux中。大部分的容器OS即為L(zhǎng)inux OS的精簡(jiǎn)版。相比大而全的Linux OS,容器OS如RancherOS、CoreOS、Redhat Atomic、Ubuntu Core、VMware Photon具有更加輕量,占有資源更少的特征,適合于更加標(biāo)準(zhǔn)化的數(shù)據(jù)中心和IOT的一些領(lǐng)域。同時(shí),Microsoft也于2015年推出Windows Nano Server,并將其作為Windows2016的安裝選項(xiàng),其大小相比完整的Windows2016部署縮小了90%以上。
2、容器引擎
容器引擎負(fù)責(zé)容器應(yīng)用的隔離和資源共享。它驅(qū)動(dòng)和管理主機(jī)上所有的容器,并且包括了容器卷管理、容器網(wǎng)絡(luò)管理、容器配置、鏡像管理以及容器日志。容器生態(tài)圈中容器引擎主要有兩個(gè)標(biāo)準(zhǔn)OCI和AppC,兩個(gè)引擎Docker和RKT。 以下是一張對(duì)比表:
3、容器存儲(chǔ)
容器中一般運(yùn)行是無(wú)狀態(tài)應(yīng)用。對(duì)于有狀態(tài)應(yīng)用,應(yīng)用的數(shù)據(jù)持久化就需要容器存儲(chǔ)的支持。Docker為了支持第三方存儲(chǔ)方案,在1.8版本引入Volume Plugin機(jī)制。Flocker作為Volume Plugin,需要和第三方外部存儲(chǔ)結(jié)合使用為容器提供持久化存儲(chǔ),同時(shí)也屏蔽掉第三方存儲(chǔ)系統(tǒng)的差異,類(lèi)似Cinder在OpenStack中的位置。而Torus (項(xiàng)目已于2017年2月停止開(kāi)發(fā),“Developmenton Torus at CoreOS stopped as of Feb 2017”引用自Github Torus項(xiàng)目說(shuō)明)和Comet(有容云)作為獨(dú)立的分布式存儲(chǔ)系統(tǒng),可直接為容器提供完整的數(shù)據(jù)存儲(chǔ)服務(wù)。
Comet存儲(chǔ)系統(tǒng)作為國(guó)內(nèi)少有的自主研發(fā)分布式系統(tǒng),除了針對(duì)容器特性進(jìn)行性能優(yōu)化外,也提供了多級(jí)數(shù)據(jù)保護(hù),應(yīng)用感知等企業(yè)級(jí)存儲(chǔ)特性。
4、容器網(wǎng)絡(luò)
容器網(wǎng)絡(luò)解決容器在大規(guī)模部署后的互聯(lián)互通的問(wèn)題。主要有Docker原生的CNM容器網(wǎng)絡(luò)模型和CoreOS支持的CNI容器網(wǎng)絡(luò)模型。除了Docker原生的Libnetwork網(wǎng)絡(luò)方案,在容器網(wǎng)絡(luò)生態(tài)圈中,有以下幾種商業(yè)容器網(wǎng)絡(luò)方案。
Flannel是CoreOS為Kubernetes設(shè)計(jì)的基于CNI模型的網(wǎng)絡(luò)方案。它讓各個(gè)容器采用UDP Overlay或者Vxlan的方式互聯(lián),并且讓集群中的不同節(jié)點(diǎn)主機(jī)創(chuàng)建的容器都具有全集群唯一的虛擬IP地址。
Weaver和Flannel在很多方面比較類(lèi)似。但是Weaver采用Name Service的方式來(lái)進(jìn)行IP分配管理,不需要一個(gè)全局的Kv Store。
Calico是一個(gè)純?nèi)龑泳W(wǎng)絡(luò),采用BGP的技術(shù)來(lái)進(jìn)行路由交換。由于不像其他幾個(gè)網(wǎng)絡(luò)模型一樣需要封包,它的性能相對(duì)最優(yōu)。
5、鏡像倉(cāng)庫(kù)
鏡像倉(cāng)庫(kù)提供了鏡像的存儲(chǔ)、及pull/push的服務(wù)。倉(cāng)庫(kù)分為公有倉(cāng)庫(kù)(如Docker Hub、Quay)和私有倉(cāng)庫(kù)(如AppHouse、Harbor)兩種形式。最大的公有倉(cāng)庫(kù)是Docker Hub,即Docker官方的鏡像倉(cāng)庫(kù)。由于網(wǎng)絡(luò)訪問(wèn)限制的原因,或企業(yè)用戶對(duì)數(shù)據(jù)安全性考慮的原因,也可以在企業(yè)私有數(shù)據(jù)中心建立私有鏡像倉(cāng)庫(kù),可通過(guò)部署AppHouse(有容云)或者Harbor來(lái)實(shí)現(xiàn)。
部署鏡像倉(cāng)庫(kù)需要考慮的是鏡像存儲(chǔ)的安全性和系統(tǒng)的容錯(cuò)性??煞謩e通過(guò)搭建企業(yè)級(jí)存儲(chǔ)系統(tǒng)或分布式存儲(chǔ)系統(tǒng)來(lái)保障鏡像數(shù)據(jù)的完整性,并選擇具有高可用特性的鏡像倉(cāng)庫(kù)進(jìn)行實(shí)施和部署。
6、容器安全
容器缺少一個(gè)像虛擬機(jī)所擁有的安全邊界。容器的快速遷移,升級(jí)和部署的特性也帶來(lái)了新的安全隱患。容器安全可分為鏡像安全和容器運(yùn)行時(shí)安全。
Clair是CoreOS開(kāi)源的容器鏡像安全分析器,具有鏡像安全掃描和提供修復(fù)建議的功能,目前也已有多個(gè)廠家將其集成在自身的容器平臺(tái)中。
TwistLock在鏡像掃描和容器運(yùn)行時(shí)都有防護(hù)方案。Aqua的CSP在2017年2月也發(fā)布了2.0版本,官方表示將和Kubernetes會(huì)有更好的結(jié)合。
AppSafe是國(guó)內(nèi)容器廠家有容云推出的容器安全產(chǎn)品,針對(duì)容器進(jìn)行智能安全策略配置,并可根據(jù)配置策略進(jìn)行實(shí)時(shí)防護(hù)。
7、容器編排
容器平臺(tái)是容器應(yīng)用大規(guī)模部署,升級(jí)和運(yùn)維的管理平臺(tái)。容器的編排和資源調(diào)度是容器平臺(tái)的核心功能。容器平臺(tái)也提供服務(wù)發(fā)現(xiàn)、運(yùn)行監(jiān)控、擴(kuò)容縮容、負(fù)載均衡、灰度升級(jí)、故障冗余等功能。
8、運(yùn)維
容器平臺(tái)運(yùn)行和管理著成千上萬(wàn)的容器及應(yīng)用。如何能從資源(主機(jī)、容器)緯度和應(yīng)用的緯度來(lái)及時(shí)監(jiān)控和日志收集,也成為容器進(jìn)入生產(chǎn)環(huán)境繞不開(kāi)的話題。目前容器的監(jiān)控和日志方案分為開(kāi)源方案和SaaS服務(wù)兩種:
ELK日志分析系統(tǒng)由三個(gè)開(kāi)源工具Elasticsearch+Logstash+Kibana組成,分別對(duì)應(yīng)搜索、數(shù)據(jù)采集和展示的功能,是一套較成熟的日志方案,有公司基于此方案提供日志SaaS服務(wù)?;谌萜鞯娜罩颈O(jiān)控通常為EFK(Elasticsearch+Fluentd+Kibana),通過(guò)占用內(nèi)存較少的Fluentd替代Logstash,來(lái)滿足容器平臺(tái)更大規(guī)模更密集的日志收集需求。
Heapster是一個(gè)開(kāi)源的容器集群監(jiān)控和性能分析工具,原生支持Kubernetes和CoreOS。一般通過(guò)Heapster+InfluxDB+Grafana來(lái)實(shí)現(xiàn)基于Kubernetes的監(jiān)控方案,來(lái)完成數(shù)據(jù)收集、存儲(chǔ)及展示的功能。
Zabbix是一個(gè)較成熟的開(kāi)源分布式監(jiān)控系統(tǒng)。在非容器場(chǎng)景中已被大量使用,Zabbix由服務(wù)器端的Server和被監(jiān)控端的Agent組成,通過(guò)豐富的模板可自定義需要收集的數(shù)據(jù)和展示形式?;谌萜鞯腪abbix監(jiān)控方案需要考慮到Agent的部署方式及容器的視圖展示方式。
Prometheus是一款開(kāi)源的監(jiān)控工具,也是在容器平臺(tái)中使用較多的一種監(jiān)控方案,相對(duì)于Heapster,Prometheus提供的查詢(xún)API功能更加強(qiáng)大,可以基于Label來(lái)實(shí)現(xiàn)復(fù)雜查詢(xún),適合有一定技術(shù)能力的團(tuán)隊(duì)使用。
Data Dog提供基于容器監(jiān)控的SaaS服務(wù),在被監(jiān)控主機(jī)上運(yùn)行Agent即可接受Data Dog的監(jiān)控,視圖簡(jiǎn)單、使用方便,其Monitors提供可自定義閾值的告警服務(wù),但成本較高。
CAdvisor 是針對(duì)單主機(jī)的免費(fèi)且開(kāi)源的容器監(jiān)控工具,可用于監(jiān)控容器當(dāng)前的資源使用率及性能情況。CAdvisor簡(jiǎn)單易用,但容器平臺(tái)中需要和其他開(kāi)源工具或產(chǎn)品結(jié)合使用,且自身無(wú)報(bào)警功能。CAdvisor已集成在Kubernetes中。
Mesos是Apache下的開(kāi)源分布式資源管理框架?;贛esos之上可以運(yùn)行不同的分布式計(jì)算平臺(tái),如Spark、Storm、Hadoop、Marathon。Mesos+Marathon可以用來(lái)管理大規(guī)模的容器集群。
Kubernetes 是一個(gè)以Google Borg 為原型的開(kāi)源項(xiàng)目??蓪?shí)現(xiàn)大規(guī)模、分布式、高可用的容器集群。目前國(guó)內(nèi)大部分容器廠家產(chǎn)品都是基于Kubernetes進(jìn)行二次開(kāi)發(fā)和方案封裝,這里暫不贅述。
Swarm是Docker的原生集群工具,Swarm使用標(biāo)準(zhǔn)的Docker API來(lái)管理容器集群。
容器運(yùn)行時(shí)風(fēng)險(xiǎn):容器運(yùn)行時(shí)風(fēng)險(xiǎn)來(lái)自于多方面,對(duì)外提供服務(wù)的容器會(huì)收到DDOS攻擊,從而導(dǎo)致主機(jī)上的所有容器出現(xiàn)資源不足;容器使用不當(dāng)會(huì)導(dǎo)致主機(jī)Root權(quán)限泄漏;使用者權(quán)限過(guò)高會(huì)通過(guò)容器對(duì)主機(jī)文件修改導(dǎo)致系統(tǒng)崩潰;數(shù)據(jù)卷共享導(dǎo)致主機(jī)上容器對(duì)數(shù)據(jù)篡改等。目前已有用戶開(kāi)始關(guān)注容器安全的問(wèn)題,同時(shí)也有不少?gòu)S商也推出了針對(duì)容器運(yùn)行時(shí)安全的商業(yè)化方案。
鏡像安全:使用互聯(lián)網(wǎng)來(lái)歷不明的鏡像、或是從互聯(lián)網(wǎng)下載不明鏡像作為基礎(chǔ)鏡像、或是制作鏡像時(shí)對(duì)端口和服務(wù)開(kāi)啟沒(méi)有嚴(yán)格的限制和把控、DockerFile中惡意程序等,都將會(huì)導(dǎo)致生成高危漏洞的鏡像。對(duì)于鏡像的安全建議在兩階段進(jìn)行控制,一是鏡像提交到鏡像倉(cāng)庫(kù)時(shí);一是進(jìn)行周期的鏡像掃描;同時(shí),對(duì)于已發(fā)布或發(fā)現(xiàn)的漏洞風(fēng)險(xiǎn),進(jìn)行及時(shí)更新。
“Docker容器有什么技術(shù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
當(dāng)前文章:Docker容器有什么技術(shù)
文章轉(zhuǎn)載:http://jinyejixie.com/article10/poesgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、外貿(mào)建站、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)