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