日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【不吹不黑】详解容器技术架构、网络和生态

發(fā)布時間:2024/9/27 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【不吹不黑】详解容器技术架构、网络和生态 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

戳藍字“CSDN云計算”關注我們哦!

作者 |??Hardy
責編 | 阿禿

談起容器技術,不得不提Docker技術。Docker 是PaaS 提供商 DotCloud 開源的一個高級容器引擎,源代碼托管在 Github 上,基于Go語言并遵從Apache2.0協(xié)議開源。Docker相當于物理行業(yè)的集裝箱對物流的影響一樣,成為Container上運行鏡象的統(tǒng)一打包和交換的標準。

我們知道,Docker使用了容器的環(huán)境隔離和資源限制技術,把鏡像和運行環(huán)境打包到Image中。Register支持容器上傳和下載功能。Docker同時提供了Build,Ship和Run,運維只需要在環(huán)境重配置好Docker,剩下的工作就是部署容器,實現(xiàn)Build Once Run Anywhere和Configure Once Run Anything;從而促進了容器技術的爆發(fā)。

在架構上,Docker采用Client Server模式和插件式架構設計,Docker的后端采用非常松耦合的架構,模塊之間相互獨立,用戶通過Docker Client與Docker Daemon建立通信,并發(fā)送請求給Docker Daemon。Docker Daemon提供Server功能接受Docker Client的請求;隨后通過Engine執(zhí)行Docker內部的一系列工作,每項工作都是以一個Job的形式的存在。

Docker講底層容器運行時剝離出來,實現(xiàn)更好的平臺無關性。LibContainer是對各種容器的抽象,發(fā)展為RunC,并貢獻給OCP組織作為定義容器環(huán)境的標準。Docker容器的三大編排工具,Compose、Swarm和Machine。Compose是服務編排工具,是定義和運行Docker主機上多容器應用的工具,通過單獨文件,定義多容器應用并運行容器。

Docker的網(wǎng)絡技術和能力一直是容器技術中最難、也是最不看好的技術之一,Libnetwork是Docker公司正在開發(fā)的新的網(wǎng)絡底層架構,由libcontainer和Docker Engine中的網(wǎng)絡相關的代碼合并而成。Libnetwork的目標是引入了容器網(wǎng)絡模型(CNM),并為應用程序提供一致的編程API接口以及網(wǎng)絡抽象。Libnetwork的容器網(wǎng)絡模型包含了三個重要概念,Network Sandbox,Endpoint和Network。

Weave創(chuàng)建了Networking Plugin技術,目前成熟的有Networking Plugin和Volume Plugin。


Weave方案包含兩大組件,用戶態(tài)Shell腳本和Weave虛擬路由容器。Weave虛擬路由容器需要在每個宿主機上布置第三方插件,把不同宿主機的Route容器連接起來,使得Docker工具生態(tài)無縫集成到Docker。

Weave創(chuàng)建一個虛擬網(wǎng)絡,鏈接多個主機的Docker容器,并使他們可以被自動發(fā)現(xiàn),對使用該網(wǎng)絡的應用來說,所以容器就像是鏈接在同一個網(wǎng)絡交換機上,無需配置端口映射、鏈路等參數(shù)。

容器和容器OS

CoreOS是最為受歡迎的容器虛擬化OS,專為Docker設計和內核裁剪。CoreOS中有兩個關鍵容器集群管理工具,etcd主要實現(xiàn)集群服務發(fā)現(xiàn)、信息共享和數(shù)據(jù)同步;而Fleet實現(xiàn)集群狀態(tài)維護、容器操作和確保服務一致可用。

VMware也推出了容器OS系統(tǒng)Photon,在VMware上創(chuàng)建VM,并且安裝Photon系統(tǒng)即可部署運行容器,并且支持目前主流的Docker、Rkt和PGC容器平臺。Photon可以容器管理認證工具Lightwave配合,可以實現(xiàn)更好的權限管理。

Docker容器和存儲

Docker容器在數(shù)據(jù)讀寫和存儲上,是采用分層和COW的存儲技術實現(xiàn),Docker本身的COW文件系統(tǒng)不支持數(shù)據(jù)持久保存,在容器被刪除或重啟后,之前的文件更改就會丟失(變化的數(shù)據(jù)被以COW寫到一個新的位置)。

Volume的引入雖然解決了數(shù)據(jù)丟失問題,但是當容器遷移后,數(shù)據(jù)卷無法跟隨Docker容器一起遷移,ClusterHQ的Flocker的出現(xiàn)恰恰解決Volume的不足,使得數(shù)據(jù)跟隨Docker遷移。

Flocker的容器和存儲卷遷移分為全遷移和增量同步兩個過程,配置文件描述Docker部署方式和狀態(tài),運行配置則生效(遷移Redis);以遷移本地存儲(非共享存儲)為例,整個過程為先打快照,全遷移,增量同步。

Flocker以Docker Volume Plugin的方式部署在Docker中,與Docker集成。目前共享存儲的支持能力比較成熟,支持的產品包括AWS EBS、Scale IO和XtremIO等,并且支持如AWS、Rackspace等云平臺;本地存儲方式在技術成熟度上并不高。

Flocker通過Storage Driver屏蔽存儲差異,并通過存儲提供的Flocker標準接口實現(xiàn)對底層存儲操作,當主機容器在不同主機間遷移時,Flocker只需要對容器的Volume進行主機的重映射。

?

Docker與PaaS

隨之容器的發(fā)展,CaaS容器即服務的概念也應時而生,其大意就是基礎設施以容器的方式來供給給應用使用。以容器為單位成為PaaS的共識,基于Docker的容器打包和分發(fā)有望成為PaaS平臺的標準, Docker將大幅拓寬PaaS的應用范圍,并促進PaaS的快速發(fā)展。

基于容器的打包一統(tǒng)新一代PaaS,第三代PaaS,DEIS、Flynn等均基于Docker,挑戰(zhàn)老的PaaS平臺。

PaaS已經(jīng)出現(xiàn)了數(shù)年時間,第一批是Azure和Heroku等公用云服務,之后出現(xiàn)的Cloud Foundry和OpensShift允許用戶建立自己的PaaS,包括了內部數(shù)據(jù)中心以及云環(huán)境。現(xiàn)在,第三代PaaS浪潮正在到來。

?

Flynn是一個開源的PaaS平臺,可自動構建部署任何應用到Docker容器集群上運行,其功能特性與組件設計大量參考了傳統(tǒng)的PaaS平臺Heroku。Flynn目前還不是很穩(wěn)定。但整個系統(tǒng)非常靈活,相互松耦合,便于任意組件的替換。

Docker與IaaS平臺

主流IaaS云平臺都支持Docker的運行?(AWS、Google Compute Engine、Rackspace等)。Docker彌合了不同IaaS之間的差異,Docker的輕量和可移動性使得其比較適合用在Hybrid Cloud中。降低了IaaS服務商用戶粘性,使得跨云服務商遷移更加自由。從而使得IaaS服務商被管道化。如果Container把安全問題解決了,可能就會有比較大的變化。

出現(xiàn)基于Docker的Container as a Service或Orchestration as a Service,如Tutum,可以避免IaaS的鎖定,甚至不用關心是運行在物理設施上,還是運行在哪家IaaS平臺上。

2014年6月Rackspace宣布和CoreOS合作提供Baremetal as a Service方案OnMetal,結合了云計算的靈活性和基于container的高性能虛擬化,提供single tenant baremetal cloud serivce。這種模式將影響當前以虛擬機為核心的IaaS平臺,預計后續(xù)可能出現(xiàn)同時提供Docker over Baremetal、 Docker over VM和VM三種混合的資源分配和調度云平臺。

Docker也引發(fā)了基于容器的應用集群管理平臺,如Kubernetes得到了微軟、紅帽、IBM、Vmware、Docker、Mesosphere、CoreOS和SaltStack等多家廠商的支持。容器集群管理技術可能導致Openstack邊緣化。

?

Docker與Openstack

從目前來看,Docker集成到OpenStack的方案主要有下面三種方案。主流觀點認為基于Nova調度和管理Docker容器不能發(fā)揮Docker的優(yōu)勢,而把Docker與Heat集成更能發(fā)揮其優(yōu)勢。


Docker Driver for Nova通過nova-api,docker driver作為hypervisor部署。原理很好理解,nova-computer-api調用virt api 將nova docker driver作為http agent和docker rest api互通,從而控制docker和與容器的通信。另外,glance作為docker register服務的本地節(jié)點,提供image服務。這種方式不支持Docker的一些高級特性。


Docker Plugin for Heat通過Heat組件來實現(xiàn)。利用heat來管理docker的資源模板,這樣可以避免nova僅僅在hypervisor層面對docker管理的限制,比如一些docker本身構建的能力,或是docker容器之間的網(wǎng)絡管理等。這種方式能夠充分利用Docker的API,但缺乏quota、 host aggregate 調度機制,不能用Glance來管理鏡像。

?

Docker與DevOps

基于Docker可以更好的實現(xiàn)DevOps。雖然有許多工具適合DevOps部署,使開發(fā)人員和操作更貼近,但Docker是一個與DevOps原則密切相關的框架。使用Docker,開發(fā)人員可以專注于他們的代碼,而不必擔心在生產環(huán)境中運行它們的負面影響。

DevOps團隊可以將整個容器作為容器處理,文件系統(tǒng)和依賴關系管理的分層方法使得環(huán)境的配置更容易維護。在相同的源代碼控制系統(tǒng)(如Git工作流程)中版本化和維護Dockerfiles使得它非常有效地管理多個開發(fā)/測試環(huán)境。不同環(huán)境的多個容器可以在同一VM上運行時被隔離。Docker還可以很好地使用現(xiàn)有的工具,如Jenkins,Chef,Puppet,Ansible,Salt Stack,Nagios和Opsworks。

Docker有可能對DevOps生態(tài)系統(tǒng)產生重大影響。它可以從根本上改變開發(fā)人員和運營專業(yè)人員合作的方式。新興DevOps公司,如CloudMunch,Factor.io,Drone.io可能必須采用Docker并將其帶入他們的CI和CD解決方案。

?

Docker與微服務架構

基于Docker容器和其生態(tài)系統(tǒng)的微服務架構是下一代PaaS的核心,在Docker出現(xiàn)之前,雖然我們談論微服務架構,但是其實是很難實現(xiàn)的。微服務要運行,首先需要一套執(zhí)行的環(huán)境。這套環(huán)境不能對外部有依賴性。同時,執(zhí)行環(huán)境的粒度又必須足夠的小,這樣才能稱之為”微“,否則必然是對資源的巨大浪費。一個微服務可以跑在一臺虛擬機上面,但是虛擬機粒度太大,即使最小的虛擬機,也至少也有1個核。服務一個用戶的服務,顯然用不了一個核。同時,虛擬機有沒有一套方便的管理機制,能夠快速的讓這些服務之間能夠組合和重構。

Docker出現(xiàn)以后,我們看到了微服務的一個非常完美的運行環(huán)境。一個容器就是一個完整的執(zhí)行環(huán)境,不依賴外部任何的東西,具備獨立性。一臺物理機器可以同時運行成百上千個容器,粒度細。其計算粒度足夠的小。容器可以在秒級進行創(chuàng)建和銷毀,非常適合服務的快速構建和重組。數(shù)量眾多的容器編排管理工具,能夠快速的實現(xiàn)?服務的組合和調度。

目前圍繞Docker已形成龐大的生態(tài)系統(tǒng),涵蓋編排/調度、容器/OS、應用部署、網(wǎng)絡/SDN、Hosting/SP、Big Data、配置管理工具、開發(fā)工具等。

互聯(lián)網(wǎng)廠商/云服務商加入Docker生態(tài)圈,在容器部署、管理、編排等領域發(fā)力,搶占容器集群管理的標準控制權,積極部署Container和倉儲服務,打造基于各自云服務的應用生態(tài)體系。

Docker將催生云計算服務標準化,可以在系統(tǒng)的構建者和使用者之間劃出一條清晰的界限,將IT系統(tǒng)的交付標準化。譬如游戲的開發(fā)商可以交付標準化的服務給游戲的發(fā)行商,發(fā)行商在不依賴開發(fā)商的情況下能夠獨立運營系統(tǒng),或者交由第三方運營系統(tǒng)。

Docker Hub為組件/系統(tǒng)提供商建立了一個部署到Docker 上的生態(tài)、App Market 環(huán)境。個人應用的普及依賴公有倉庫,企業(yè)級應用普及依賴私有倉庫。為私有容器提供安全、高速訪問和多云聯(lián)通。

Docker的挑戰(zhàn)者Rocket

CoreOS 使用 Docker 容器構建其服務,并對 Docker 項目做出巨大貢獻。但2014年CoreOS宣布正在開發(fā)自己的容器引擎Rocket ,因為其不同Docker 的發(fā)展方向。CoreOS在 Docker 早期時候認為 Docker 在為開發(fā)人員提供一個標準的容器架構,簡化了開發(fā)人員的日常工作。后來發(fā)現(xiàn) Docker在獲得很多資金后的使命已經(jīng)擴張?zhí)?#xff0c;現(xiàn)在不是在談論 Docker 容器,而是 Docker平臺。

Docker的Roadmap表明旨在想要構筑一個完整的Docker平臺,包括Machine (系統(tǒng)配置)、Swarm (Docker 化應用的原生集群)、Compose (多容器應用組裝)。

Docker的發(fā)展方向將對Docker的周邊生態(tài)產生復雜影響,后續(xù)可能面臨更多來自生態(tài)的挑戰(zhàn),關于Docker詳細分析,請持續(xù)關注CSDN云計算。



???特邀各路大大免費入駐CSDN啦,除云計算相關書籍免費贈送外,還有海量福利奧~詳情戳?下方圖片,么么噠~

福利掃描添加小編微信,備注“姓名+公司職位”,入駐【CSDN博客】,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!


推薦閱讀:

  • 【建議收藏】數(shù)據(jù)中心服務器基礎知識大全
  • 博文強識|支付寶 App 是如何建設移動 DevOps 的?
  • 在辦公室裝警報、參加楊超越編程大賽——“開發(fā)者之友”聲網(wǎng)Agora團隊是怎樣煉成的?

  • 大規(guī)模1.4億中文知識圖譜數(shù)據(jù),我把它開源了
  • 巨頭垂涎卻不能染指,loT 數(shù)據(jù)庫風口已至

  • “國家隊”入局! 中移動、銀聯(lián)等宣布區(qū)塊鏈服務網(wǎng)絡(BSN)正式內測!

真香,朕在看了!

總結

以上是生活随笔為你收集整理的【不吹不黑】详解容器技术架构、网络和生态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。