[Docker]公有云容器服务进入2.0时代--Amazon与Google容器方案对比

近来Google、Amazon接连发布基于容器(其实主要是Docker)的新业务。

2014.11.05 Google发布Google Container engine

2014.11.13 Amazon发布AWS Container Service

估计很快我们也将看到Azure的新容器服务发布了。

如果我们把之前IaaS公有云提供商的产品看做容器服务1.0, 这轮新发布的产品相当于2.0升级版。

在1.0中,各厂商引入API、CLI方式向用户提供在虚拟机中创建容器的简单能力。

在2.0中,各厂商引入容器集群、业务(一组容器,Task/Pods)的概念。对基于容器开发的用户来说,似乎在淡化虚拟机存在。用户完全以容器的方式进行管理和业务发放。在资源不足时,才需要往容器集群中增加新的节点(虚拟机)。

目前国内厂商刚刚开始1.0的支持。

Amazon与Google容器方案对比

集群管理

Google的Cluster有一组虚拟机组成,其中包含了一个master节点和多个node节点。Google选择了自己主导的kubernetes作为集群管理工具。Google提供了Replication Controller确保业务的多个实例的同时运行。用于提高业务的可靠性。

Amazon的Cluster也是由一组虚拟机(在一个region,可以在多个AZ中)组成。每个集群可以创建一个scheduler,负责容器在集群中的管理。

业务管理

Google提供了Pods,用来管理一个包含多个容器的业务。Amazon提供给了Task Define定义一个包含多个容器的业务,Task是Task Define的实例。

镜像

Amazon提供了ECS-Enabled AMI(其中包含了agent软件)供用户使用。后续第三方支持Google container service的AMI镜像也将提供。

Google没有类似的暴露,而是直接帮助用户建立一个kubernetes CLuster。

特别的

Google还提供给了Service的概念。因为Pods都是临时的,随时可能失效。Service用来完成对Pods的路由,避免Pods消失带来的业务不可访问。

镜像仓库

两者并未提供自己的Docker镜像仓库(可能国外网络条件比较好),都是使用外部docker hub或者第三方仓库。

使用过程

Amazon

创建Cluster

创建Task define,并注册到Cluster中

创建虚拟机,并注册到CLuster中

根据Task define创建若干个Task实例

提供服务。然后监控cluster情况,进行Cluseter中虚拟机的增减

Google

创建Cluster

创建Pods

相关推荐