自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Kubernetes、Docker Swarm與Amazon ECS之間的容器之爭

譯文
云計算
容器技術的原型開始于1970年末,但直到2013年Docker的問世,容器才成為了主流技術。在本文中,我將通過比較三大容器編排領域的主流工具,以幫助您選出合適自己的工具。

【51CTO.com快譯】容器技術的原型開始于1970年末,但直到2013年Docker的問世,容器才成為了主流技術。在此之后,隨著各種容器技術在業(yè)界的發(fā)力,它們極大地改變了DevOps的企業(yè)實踐,同時也改變了我們構建、傳輸和運行各種分布式應用的方式。Docker與容器可謂是比翼雙飛、同步發(fā)展。

容器編排工具為您在多個主機之間協(xié)同地創(chuàng)建、管理和更新多個容器,提供了實用且強大的解決方案。同時,編排工具也能夠讓您異步地在不同服務和任務進程之間共享數據。在生產環(huán)境中,您可以在多個服務器之上,運行單個服務的多個實例,從而使得單個應用具有高可用性??梢哉f編排越簡單,我們就越能夠深入到某個應用之中,將其分解成更多、更小的微服務。當然,這自然會引出一個新的問題:我們應當選擇哪一種工具來進行編排呢?

在本文中,我將通過比較三大容器編排領域的主流工具,以幫助您選出合適自己的工具。

總述

在很大程度上,容器的編排需要依賴于您的基礎架構。這就意味著您需要充分了解這些方案是如何與當前的云提供商、以及本地部署方案相集成的。您是愿意全盤使用某一家云供應商的整體工具套件呢,還是需要有多元化的組件?

Kubernetes如今已在容器編排領域占有統(tǒng)治性地位。它的可配置性、可靠性和所擁有的強大社區(qū),已遠超過Docker Swarm。由于是Google所創(chuàng)建的開源項目,Kubernetes能與Google的整個云平臺和諧共處。而且,它幾乎能在任何基礎架構上順暢運行。

Swarm是Docker自有的一種編排工具。通過集成到Docker Engine中,它能夠使用標準化的API與網絡。通過內置Docker CLI(命令行界面),Swarm Mode在不需要被額外安裝的情況下,就能方便地調用新的Swarm命令。您可以使用命令 -- docker service create來部署一項服務。同時,Docker Swarm在性能、靈活性和簡易性上的優(yōu)勢,能夠與Kubernetes的統(tǒng)治地位相抗衡。

Amazon Elastic Container Service(ECS)是亞馬遜專有的容器調度程序。它被設計為能夠與AWS的其他服務協(xié)同工作。這就意味著那些以AWS為核心的解決方案,如監(jiān)控、負載均衡和存儲等,都能夠方便地被集成到您的服務之中。如果您使用的并非是亞馬遜所提供的云服務,或者在本地運行您的工作負載的話,ECS就不一定合適了。

Kubernetes

Kubernetes,常被縮寫為K8s或Kube,它專注于Linux容器開發(fā)15年,是Google針對容器管理的開源方案。它能夠工作在多個云提供商的多種生產環(huán)境之中,包括裸金屬(bare metal)云服務架構和本地虛擬機、以及混合云等模式。

Kubernetes的集群包括如下重要組件:

  • Pods:在同一節(jié)點上創(chuàng)建、調度和部署出一組、或多組容器。
  • Labels:是被分配出來用于標識各種pod、service和replication controllers鍵值(key-value)的標簽(如:名稱)。
  • Services:為一組pod提供名稱,如負載均衡器一般,將流量引入正在運行的容器之中。
  • Replication controllers:一種框架,它負責確保特定數量pod的副本能在任何給定時刻按照調度運行。

在這三種工具中,數Kubernetes的安裝最為復雜,當然如果您能使用正確的工具,那么其過程會簡化許多。

  • Kubeadm(https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/)能夠提供很好的、與現有編排系統(tǒng)、或裸金屬環(huán)境的集成。
  • Helm(https://github.com/kubernetes/helm)是一種能夠優(yōu)化安裝、并管理Kubernetes各種應用的流行工具。

Kube的一個主要優(yōu)點是:您對于配置具有***控制權。另外,一些常見的平臺也有著大量的文檔,可以支持您的定制化設置。因此,在遇到任何問題的時候,您都可以在Stack、Overflow和GitHub上通過大量的社區(qū)用戶與資源,來尋求幫助與支持。

Docker Swarm

Docker Swarm擴展了單主機的Docker模式,它允許開發(fā)人員快速、方便地部署多個容器與微服務。由于已被內置于Docker Engine之中,因此它是三種工具中最輕量級、且最容易轉換的工具。

Swarm的集群包括如下重要組件:

  • Manager nodes:用于控制編排、集群管理和任務分配。
  • Worker nodes:其唯一的功能就是運行由Manager Node所分配的容器和服務。
  • Services:描述了您希望單個容器將如何在不同節(jié)點之間分發(fā)。如果您想創(chuàng)建服務,請在普通Docker運行時指定確切的信息,再添加好新的參數(如:容器的副本數量)。
  • Tasks:是Swarm的基本單位。Manager Node根據在服務描述中設置的副本數量把任務分配該Worker Nodes。一旦一個任務被分配給了某個節(jié)點,它就不能被移到其他節(jié)點上。

Swarm適用于剛開始接觸容器、以及不需要去逐個配置細節(jié)的用戶。另外,Swarm還能讓您方便地擴展出大量的容器。

由于已被內置于Docker Engine之中,Swarm Mode并不需要被額外地進行安裝。Docker 1.12及其更高版本都具有此功能。

Kubernetes、Docker Swarm與Amazon ECS之間的容器之爭

Amazon Elastic Container Service(ECS)

Amazon ECS是AWS自創(chuàng)的容器管理服務,也是一項兼容Docker的服務。它能讓您在EC2的實例上運行容器化的應用,因此它是Kube和Swarm的一種替代方案。

雖然Docker本身非常簡單,但是亞馬遜的ECS卻是一種比較復雜的工具,因此您必須去學習整個全新的平臺。ECS包含有如下組件:

  • ECS clusters:是運行各項任務的EC2實例組。
  • Task definition:是一份JSON格式的文本文件,其中包含Docker的運行命令,以及應該在哪一臺主機上運行哪些容器的細節(jié)。
  • Service:是用于在整個集群上運行和維護指定數量的、各種任務定義實例的工具。
  • Service scheduler:能夠持續(xù)監(jiān)控運行的任務,以確保具有合理的在線服務數量,并能在任何失敗出現時重新安排任務的上線。
  • Container agents:此功能可以幫助您將各個集群的實例與容器相連接。

Amazon ECS***程度地方便了不同的容器,與AWS的其他服務之間的無縫集成。它是一種能夠提供高可用性、可伸縮性和安全性的完全托管服務。而且AWS的標準支持計劃本身就已經將ECS包含在內了。

綜述

可見,如何選擇適當的容器編排工具,完全取決于您需求的側重點,同時也要兼顧您所需要協(xié)同使用的技術。如果您的應用與AWS密切相關,那么選用ECS肯定會比Kubernetes更合理。反之,如果您使用Google云作為提供商,而且熱衷于各種配置,并愿意為***的服務付出復雜性和精力的話,那么Kubernetes一定是您的***。

原文標題:Container Wars:Kubernetes vs. Docker Swarm vs. Amazon ECS,作者:Julia Pearson

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:未麗燕 來源: 51CTO.com
相關推薦

2023-09-04 15:09:03

容器編排工具KubernetesDocker

2016-03-02 18:22:27

云容器Google容器引擎Amazon

2024-01-02 08:00:00

云計算容器Docker

2020-07-06 07:52:10

Kubernetes網絡通信

2014-12-15 10:40:40

DockerSwarm集群管理

2016-12-01 13:37:42

OpenStack MDocker Swar容器

2020-09-02 14:40:27

Docker Swar命令Linux

2014-11-18 11:37:46

dockeramazonGoogle

2020-11-03 10:23:22

云計算容器技術

2014-11-19 11:12:37

谷歌Amazon

2016-01-11 10:07:27

容器Kubernetes

2019-05-14 14:27:36

KubernetesDocker存儲

2016-11-16 19:28:04

容器技術

2014-12-18 13:20:09

Docker容器鏡像數據卷

2019-12-04 11:00:42

前端DockerKubernetes

2023-10-10 17:09:19

2019-11-11 21:34:33

DockerKubernetes容器

2016-10-31 15:33:57

DockerMySQL容器管理

2020-01-09 15:28:30

KubernetesDocker:容器

2023-08-28 16:10:00

容器化DockerKubernetes
點贊
收藏

51CTO技術棧公眾號