数人云|关于Docker Swarm&K8S,几大要素免踩坑

数人云以前分享了《聊聊调度框架,K8S、Mesos、Swarm 一个都不能少》那么你是否仍在Docker和Kubernetes选择上陷入了困扰?因此不要担忧,由于这也是不少人的苦恼,这二者都是很是优秀的容器服务,至于那种更好,其实在很大程度上取决于自身和团队的需求。docker

在深刻研究前,咱们须要了解什么是“容器”。安全

容器是轻量级、独立的镜像,能够用来实现软件,包含了成功运行应用所需的全部内容,工做方式相似于虚拟机(VM),可是它只包含必要的库和设置来执行应用。框架

Docker Swarm、Kubernetes都提供了相同基础设施中部署和隔离软件的容器,也有很好处理应用的方式,但这二者之间也有一些关键性的区别:工具

不少工程师,都喜欢在Docker Swarm上工做,由于它很容易使用和实现,但选择了Docker Swarm,它就会比Kubernetes更优秀吗?性能

image

须要先了解一下什么是Docker Swarm、Kubernetes。学习

Docker Swarm

Docker是一个开源平台,它可能意味着一个公司,一个容器平台或Docker集群,本文讨论的是容器技术,因此这里提到的Docker的意思实际上是Docker Swarm,Docker Swarm是一个灵活的容器存储平台,以强大的易用性而著称,另外一方面,Docker Swarm则彻底是为了管理Docker引擎集群。ui

image

Kubernetes

Kubernetes是一个流行的开源容器存储程序,它是由谷歌创建的,用来管理其系统,这是一个开源的、可扩展的、强大的工具,能够处理容器,同时提供巨大的可伸缩性和自动化。spa

去年,做为热门游戏之一的Pokemon Go,也使用了Kubernetes来管理它们的产品和快速扩展,Pokemon Go的成功,本身快速地传播,让人切实地感觉到了Kubernetes的力量。操作系统

image

对比

安全和设置命令行

每一个工具都有本身的安装和设置过程,想在云端或其余基础设置中管理容器
,很大程度上取决于它是如何创建的,相比之下,Kubernetes对用户的友好度并不如Docker Swarm。

Kubernetes:当涉及到安装和设置时,它会给开发者出一些难题,首先,须要为每一个操做系统(OS)从新配置,在线文档在这个过程当中有不少的帮助,然而在构建定制环境时,可能会变得十分复杂,惟一的解决办法是:搜谷歌。Kubernetes不容易安装和设置的另外一个关键缘由在实现以前须要进行规划,须要花费大量的时间和精力去规划节点,并且要进行人工整合,由于它并非全部的东西均可以自动化,这让Kubernetes难以管理。

Docker Swarm:得益于它的命令行界面(CLI),Docker Swarm很容易设置和管理,它使用CLI和GIT相似的语义,这使得应用开发者可以轻易地将新技术集成到工做流当中,与Kubernetes相比,在实现新操做系统、环境的容器时,无需学习新的东西。

综上所述,在安装和设置方面,Docker Swarm略胜一筹。

监控和日志

一旦部署了容器,下一步就是监控节点集群,Kubernetes和Docker Swarm都成功地提供了一个良好的监控和日志记录流程。

对于Kubernetes来讲,监控和日志记录集群的方法不止一种,下面有一些方法以供参考:

  • 监控:Grafana , Heapster , or Influx
  • 日志记录:Kibana (ELK) or Elasticsearch

对于Docker Swarm来讲,没有内置的库或进程来监控或记录,可是开发人员可使用第三方应用来达到目的,第三方监控工具备:Sumo Logic , Retrace , Reimann , and DataDog。

伸缩和性能

使用容器服务的最基本原理是它们提供的可伸缩性,这两个平台都是高度可伸缩的,而且在特定的时间支撑数千个容器,起初,Docker Swarm对大量的容器没有很好的支持,然而,在新的版本后,它就能够支持和Kubernetes的容器数量比肩,两个系统都支持1000个节点集群,这些集群能够支持多大3万个容器。

在性能方面,Kubernetes对Dokcer Swarm有良好的基础,然而,由独立机构完成研究代表,Docker Swarm能够比Kubernetes快5倍的速度去运转容器。

Kubernetes Docker Swarm
在市场上最成熟的解决方案。 Docker Swarm提供良好的特性,但受限于其API。
Kubernetes也在市场上最受欢迎的解决方案。 rDocker Swarm的市场Kubernetes相比相对较弱。
Kubernetes很难安装和配置。 Docker Swarm的设置和安装是很容易的。
Kubernetes提供内置的日志记录和监控工具。 Docker只支持第三方监控和日志记录工具。
自动定量的CPU利用率是一个很大的因素。 能够手动扩展服务。

结论

Kubernetes获得了开发者社区的普遍承认,尽管它的安装过程很是艰难,之因此受到欢迎的缘由很大程度取决于它提供的灵活性,以及良好的谷歌背景,而Docker Swarm有一个小型的社区,增加略微缓慢。

Kubernetes的庞大社区意味着新的工具、特定和支持。若你是一个小的开发者,想要学习容器服务,那么Kubernetes会有大量的经验能够借鉴,不少志同道合的朋友能够一块儿学习,而Docker Swarm一样能够根据自身业务需求更深刻了解。

原文做者:Damian Wolf
原文连接:https://dzone.com/articles/do...

相关文章
相关标签/搜索