新聞中心
Kubernetes、Docker Swarm與Amazon ECS之間的容器之爭
譯文
作者:陳峻編譯 2018-07-23 09:02:18
云計算 容器技術(shù)的原型開始于1970年末,但直到2013年Docker的問世,容器才成為了主流技術(shù)。在本文中,我將通過比較三大容器編排領(lǐng)域的主流工具,以幫助您選出合適自己的工具。

德興網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,德興網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為德興近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的德興做網(wǎng)站的公司定做!
【51CTO.com快譯】容器技術(shù)的原型開始于1970年末,但直到2013年Docker的問世,容器才成為了主流技術(shù)。在此之后,隨著各種容器技術(shù)在業(yè)界的發(fā)力,它們極大地改變了DevOps的企業(yè)實踐,同時也改變了我們構(gòu)建、傳輸和運行各種分布式應(yīng)用的方式。Docker與容器可謂是比翼雙飛、同步發(fā)展。
容器編排工具為您在多個主機(jī)之間協(xié)同地創(chuàng)建、管理和更新多個容器,提供了實用且強(qiáng)大的解決方案。同時,編排工具也能夠讓您異步地在不同服務(wù)和任務(wù)進(jìn)程之間共享數(shù)據(jù)。在生產(chǎn)環(huán)境中,您可以在多個服務(wù)器之上,運行單個服務(wù)的多個實例,從而使得單個應(yīng)用具有高可用性??梢哉f編排越簡單,我們就越能夠深入到某個應(yīng)用之中,將其分解成更多、更小的微服務(wù)。當(dāng)然,這自然會引出一個新的問題:我們應(yīng)當(dāng)選擇哪一種工具來進(jìn)行編排呢?
在本文中,我將通過比較三大容器編排領(lǐng)域的主流工具,以幫助您選出合適自己的工具。
總述
在很大程度上,容器的編排需要依賴于您的基礎(chǔ)架構(gòu)。這就意味著您需要充分了解這些方案是如何與當(dāng)前的云提供商、以及本地部署方案相集成的。您是愿意全盤使用某一家云供應(yīng)商的整體工具套件呢,還是需要有多元化的組件?
Kubernetes如今已在容器編排領(lǐng)域占有統(tǒng)治性地位。它的可配置性、可靠性和所擁有的強(qiáng)大社區(qū),已遠(yuǎn)超過Docker Swarm。由于是Google所創(chuàng)建的開源項目,Kubernetes能與Google的整個云平臺和諧共處。而且,它幾乎能在任何基礎(chǔ)架構(gòu)上順暢運行。
Swarm是Docker自有的一種編排工具。通過集成到Docker Engine中,它能夠使用標(biāo)準(zhǔn)化的API與網(wǎng)絡(luò)。通過內(nèi)置Docker CLI(命令行界面),Swarm Mode在不需要被額外安裝的情況下,就能方便地調(diào)用新的Swarm命令。您可以使用命令 -- docker service create來部署一項服務(wù)。同時,Docker Swarm在性能、靈活性和簡易性上的優(yōu)勢,能夠與Kubernetes的統(tǒng)治地位相抗衡。
Amazon Elastic Container Service(ECS)是亞馬遜專有的容器調(diào)度程序。它被設(shè)計為能夠與AWS的其他服務(wù)協(xié)同工作。這就意味著那些以AWS為核心的解決方案,如監(jiān)控、負(fù)載均衡和存儲等,都能夠方便地被集成到您的服務(wù)之中。如果您使用的并非是亞馬遜所提供的云服務(wù),或者在本地運行您的工作負(fù)載的話,ECS就不一定合適了。
Kubernetes
Kubernetes,常被縮寫為K8s或Kube,它專注于Linux容器開發(fā)15年,是Google針對容器管理的開源方案。它能夠工作在多個云提供商的多種生產(chǎn)環(huán)境之中,包括裸金屬(bare metal)云服務(wù)架構(gòu)和本地虛擬機(jī)、以及混合云等模式。
Kubernetes的集群包括如下重要組件:
- Pods:在同一節(jié)點上創(chuàng)建、調(diào)度和部署出一組、或多組容器。
- Labels:是被分配出來用于標(biāo)識各種pod、service和replication controllers鍵值(key-value)的標(biāo)簽(如:名稱)。
- Services:為一組pod提供名稱,如負(fù)載均衡器一般,將流量引入正在運行的容器之中。
- Replication controllers:一種框架,它負(fù)責(zé)確保特定數(shù)量pod的副本能在任何給定時刻按照調(diào)度運行。
在這三種工具中,數(shù)Kubernetes的安裝最為復(fù)雜,當(dāng)然如果您能使用正確的工具,那么其過程會簡化許多。
- Kubeadm(https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/)能夠提供很好的、與現(xiàn)有編排系統(tǒng)、或裸金屬環(huán)境的集成。
- Helm(https://github.com/kubernetes/helm)是一種能夠優(yōu)化安裝、并管理Kubernetes各種應(yīng)用的流行工具。
Kube的一個主要優(yōu)點是:您對于配置具有***控制權(quán)。另外,一些常見的平臺也有著大量的文檔,可以支持您的定制化設(shè)置。因此,在遇到任何問題的時候,您都可以在Stack、Overflow和GitHub上通過大量的社區(qū)用戶與資源,來尋求幫助與支持。
Docker Swarm
Docker Swarm擴(kuò)展了單主機(jī)的Docker模式,它允許開發(fā)人員快速、方便地部署多個容器與微服務(wù)。由于已被內(nèi)置于Docker Engine之中,因此它是三種工具中最輕量級、且最容易轉(zhuǎn)換的工具。
Swarm的集群包括如下重要組件:
- Manager nodes:用于控制編排、集群管理和任務(wù)分配。
- Worker nodes:其唯一的功能就是運行由Manager Node所分配的容器和服務(wù)。
- Services:描述了您希望單個容器將如何在不同節(jié)點之間分發(fā)。如果您想創(chuàng)建服務(wù),請在普通Docker運行時指定確切的信息,再添加好新的參數(shù)(如:容器的副本數(shù)量)。
- Tasks:是Swarm的基本單位。Manager Node根據(jù)在服務(wù)描述中設(shè)置的副本數(shù)量把任務(wù)分配該Worker Nodes。一旦一個任務(wù)被分配給了某個節(jié)點,它就不能被移到其他節(jié)點上。
Swarm適用于剛開始接觸容器、以及不需要去逐個配置細(xì)節(jié)的用戶。另外,Swarm還能讓您方便地擴(kuò)展出大量的容器。
由于已被內(nèi)置于Docker Engine之中,Swarm Mode并不需要被額外地進(jìn)行安裝。Docker 1.12及其更高版本都具有此功能。
Amazon Elastic Container Service(ECS)
Amazon ECS是AWS自創(chuàng)的容器管理服務(wù),也是一項兼容Docker的服務(wù)。它能讓您在EC2的實例上運行容器化的應(yīng)用,因此它是Kube和Swarm的一種替代方案。
雖然Docker本身非常簡單,但是亞馬遜的ECS卻是一種比較復(fù)雜的工具,因此您必須去學(xué)習(xí)整個全新的平臺。ECS包含有如下組件:
- ECS clusters:是運行各項任務(wù)的EC2實例組。
- Task definition:是一份JSON格式的文本文件,其中包含Docker的運行命令,以及應(yīng)該在哪一臺主機(jī)上運行哪些容器的細(xì)節(jié)。
- Service:是用于在整個集群上運行和維護(hù)指定數(shù)量的、各種任務(wù)定義實例的工具。
- Service scheduler:能夠持續(xù)監(jiān)控運行的任務(wù),以確保具有合理的在線服務(wù)數(shù)量,并能在任何失敗出現(xiàn)時重新安排任務(wù)的上線。
- Container agents:此功能可以幫助您將各個集群的實例與容器相連接。
Amazon ECS***程度地方便了不同的容器,與AWS的其他服務(wù)之間的無縫集成。它是一種能夠提供高可用性、可伸縮性和安全性的完全托管服務(wù)。而且AWS的標(biāo)準(zhǔn)支持計劃本身就已經(jīng)將ECS包含在內(nèi)了。
綜述
可見,如何選擇適當(dāng)?shù)娜萜骶幣殴ぞ?,完全取決于您需求的側(cè)重點,同時也要兼顧您所需要協(xié)同使用的技術(shù)。如果您的應(yīng)用與AWS密切相關(guān),那么選用ECS肯定會比Kubernetes更合理。反之,如果您使用Google云作為提供商,而且熱衷于各種配置,并愿意為***的服務(wù)付出復(fù)雜性和精力的話,那么Kubernetes一定是您的***。
名稱欄目:Kubernetes、DockerSwarm與AmazonECS之間的容器之爭
當(dāng)前URL:http://m.fisionsoft.com.cn/article/djjdpic.html


咨詢
建站咨詢
