Kubernetes、Docker Swarm与Amazon ECS之间的容器之争

首页

2018-10-06

【快译】容器技术的原型开始于1970年末,但直到2013年Docker的问世,容器才成为了主流技术。

在此之后,随着各种容器技术在业界的发力,它们极大地改变了DevOps的企业实践,同时也改变了我们构建、传输和运行各种分布式应用的方式。 Docker与容器可谓是比翼双飞、同步发展。 容器编排工具为您在多个主机之间协同地创建、管理和更新多个容器,提供了实用且强大的解决方案。 同时,编排工具也能够让您异步地在不同服务和任务进程之间共享数据。

在生产环境中,您可以在多个服务器之上,运行单个服务的多个实例,从而使得单个应用具有高可用性。

可以说编排越简单,我们就越能够深入到某个应用之中,将其分解成更多、更小的微服务。 当然,这自然会引出一个新的问题:我们应当选择哪一种工具来进行编排呢在本文中,我将通过比较三大容器编排领域的主流工具,以帮助您选出合适自己的工具。 总述在很大程度上,容器的编排需要依赖于您的基础架构。

这就意味着您需要充分了解这些方案是如何与当前的云提供商、以及本地部署方案相集成的。 您是愿意全盘使用某一家云供应商的整体工具套件呢,还是需要有多元化的组件Kubernetes如今已在容器编排领域占有统治性地位。

它的可配置性、可靠性和所拥有的强大社区,已远超过DockerSwarm。 由于是Google所创建的开源项目,Kubernetes能与Google的整个云平台和谐共处。

而且,它几乎能在任何基础架构上顺畅运行。 Swarm是Docker自有的一种编排工具。 通过集成到DockerEngine中,它能够使用标准化的API与网络。 通过内置DockerCLI(命令行界面),SwarmMode在不需要被额外安装的情况下,就能方便地调用新的Swarm命令。 您可以使用命令--dockerservicecreate来部署一项服务。

同时,DockerSwarm在性能、灵活性和简易性上的优势,能够与Kubernetes的统治地位相抗衡。 AmazonElasticContainerService(ECS)是亚马逊专有的容器调度程序。

它被设计为能够与AWS的其他服务协同工作。

这就意味着那些以AWS为核心的解决方案,如监控、负载均衡和存储等,都能够方便地被集成到您的服务之中。 如果您使用的并非是亚马逊所提供的云服务,或者在本地运行您的工作负载的话,ECS就不一定合适了。

KubernetesKubernetes,常被缩写为K8s或Kube,它专注于Linux容器开发15年,是Google针对容器管理的开源方案。

它能够工作在多个云提供商的多种生产环境之中,包括裸金属(baremetal)云服务架构和本地虚拟机、以及混合云等模式。

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