Kubernetes Pods和Docker Compose脚本(以下称为“Compositions”)的结果似乎都会产生虚拟计算机集群 .
群集中的计算机都可以配置为相互通信,因此您可以编写一个镜像整个端到端 生产环境 配置的脚本 . 单个脚本允许您在任何容器主机上部署该群集 .
鉴于两个系统之间的相似性,我很难理解两者之间的差异 .
为什么我会选择一个而不是另一个?它们是相互排斥的系统还是我可以在kubernetes中运行组合 .
在设计集装箱系统时是否需要考虑任何关键因素?如果我今天正在为一个站点设计架构,并且想尝试构建一个基于容器的系统 . 我应该设计的最重要的事情是什么? (与在单一机器系统上构建相比)
3 回答
docker compose只是一种声明你必须启动的容器的方法:它没有节点或集群的概念,除非它启动swarm主节点和swarm节点,但那是docker swarm)
2016年7月更新,7个月后:docker 1.12模糊了线条和includes a "swarm mode" .
它与kubernetes有很大的不同,它是一个谷歌工具,可管理数千个容器组作为Pod,数十台或数百台机器 .
Kubernetes Pod会be closer from a docker swarm:
如commented below由ealeon:
你可以launch kubernetes commands with docker-compose by the way .
你可以在episode #3 of Google Cloud Platform Podcast听到更多关于kubernetes的信息 .
虽然两者都可以创建一个多容器应用程序,但Pod也可以作为部署和水平扩展/复制的单元,而docker组件不提供 .
另外,您不直接创建pod,而是使用控制器(如复制控制器) .
POD存在于一个更大的平台中,该平台提供协同定位(共同调度),命运共享,协调复制,资源共享和依赖关系管理 .
Docker使用
docker-compose.yml
文件独立构建生命......尽管上面的答案清楚地回答了这个问题,但我正在添加一些快速笔记 .
Docker-Compose和Kubernetes pod都是配置文件(Yaml),用于根据图像定义容器实例 .
Docker compose本身只是一个能够包含通信服务(容器)的文件;它本质上是非分布式的 .
Kubernetes pods还具有定义多个容器的能力,但这里的主要区别在于可用节点之间的分布概念 .
最后,Docker Compose是一个用于定义和运行多容器Docker应用程序而不需要编排的工具,除非告知使用Swarm执行此操作 . 并且pod包含多个容器,如果可用,它们将自动在节点集群中共享 .
网络方面有所不同: