有很多文章可以解释这些差异。简而言之:
- 两者都试图解决相同的问题-在大量主机上进行容器编排。本质上,这些问题可以按如下方式分解:
- 在多个主机之间调度容器(考虑资源利用率等)
- 将容器分组为逻辑单元
- 缩放容器
- 部署后对这些容器进行负载平衡/访问
- 将存储附加到容器,无论是否共享
- 容器/分组容器之间的通信/网络
- 容器的服务发现(即X服务在哪里)
Kubernetes和Docker Swarm都可以为您解决这些问题,但是它们有不同的命名约定和解决方案。差异是相对概念上的。有一些文章很好地解释了这一点:
https://platform9.com/blog/compare-kubernetes-vs-docker-swarm/
https://torusware.com/blog/2016/09/hands-on-orchestration-docker-1-12-swarm-
vs- kubernetes /
http://containerjournal.com/2016/04/07/kubernetes-vs-swarm-container-
orchestrator-best/
本质上,它们是同一空间中的相似产品。不过,请注意以下几点:
- Kubernetes是用容器不可知的思维方式开发的(目前它支持Docker,rkt并对hyper提供了一些支持,而docker swarm仅适用于docker)
- Kubernetes是“云原生”的,因为它可以在Azure,Google Container Engine和AWS上同样良好地运行-我目前还不知道这是Docker Swarm的功能,尽管您可以自己配置
- Kubernetes是一个完全开源的产品。如果需要商业支持,则需要联系第三方。Docker为Swarm提供企业支持
- 如果您熟悉docker-compose工作流程,则Docker Swarm会利用它,因此您可能会熟悉它并更容易上手。Kubernetes要求学习Pod /服务/部署定义,虽然这是纯Yaml,但这是一种调整。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)