Docker集群的两种模式K8s和swarm究竟有何异同?未来企业应用哪个会更加广泛?

二者究竟有何本质区别,在生产环境中哪个应用范围更广?希望和大家一起在这里探讨下。显示全部

二者究竟有何本质区别,在生产环境中哪个应用范围更广?希望和大家一起在这里探讨下。

收起
参与27

查看其它 5 个回答jack161641的回答

jack161641jack161641系统运维工程师wanda

1、出生不同,Google根据其在Linux上容器管理经验,改造到docker管理上,就是kubernetes。他的在许多方面表现良好。最重要的是构造于Google多年的宝贵经验只上。kubernetes并不是为了docker写的,kubernetes把集群带到了一个全新的高度,代价是学习曲线比较陡。docker-swarm 使用了一个不同的方式。它是docker原生的集群工具。最方便的部分是它暴露了docker标准的编程接口,意味着你之前一直在使用的任何与docker沟通的工具(docker命令行接口,docker compose,dokku,krane等等),都可以无缝的在docker swarm上使用。

2、安装配置不同,安装设置swarm非常简单,简单明了并且很灵活。我们需要做的就是安装一个服务发现工具,然后在所有的节点上安装swarm容器。相比较而言,kubernetes的安装就有点复杂晦涩了。不同的操作系统上安装都不同。每个操作系统都有自己的独立安装指令。

3、运行方式不同,使用Swarm和使用容器没有什么不同。比如,你习惯于使用Docker CLI(命令行接口),你可以继续使用几乎相同的命令。如果你习惯于使用Docker Componse来运行容器,你可以继续在Swarm集群中使用。不管你之前习惯于怎么使用容器,你仍旧可以使用,只是在更大级别的集群中使用。Kubernetes要求你去学习它自己的CLI(命令行接口)和配置。你不能使用你之前创建的docker-compose.yml配置,你必须要去新建与Kubernetes对应的配置。你也不能使用之前学习的Docker CLI(命令行接口)。你必须要去学习 Kubernetes CLI(命令行接口)


最后,当需要在Docker Swarm 和 Kubernetes做出选择时,可以考虑如下几点。你是否想依赖于Docker自己来解决集群的问题。如果是,选择Swarm。如果某些功能在Docker中不支持,那它也非常可能在Swarm中找不到,因为Swarm是依赖于Docker API的。另外一方面,如果你想要一个工具可以解决Docker的限制,Kubernetes将是不错的选择。Kubernetes不是基于Docker,而是基于Google多年对于管理容器的经验。它是按照自己的方式来行事。
互联网服务 · 2017-06-28
浏览4442

回答者

jack161641
系统运维工程师wanda
擅长领域: 云计算容器云容器

jack161641 最近回答过的问题

回答状态

  • 发布时间:2017-06-28
  • 关注会员:7 人
  • 回答浏览:4442
  • X社区推广