[Docker]公有云容器服務(wù)進(jìn)入2.0時代--Amazon與Google容器方案對比
近來Google、Amazon接連發(fā)布基于容器(其實主要是Docker)的新業(yè)務(wù)。
2014.11.05 Google發(fā)布Google Container engine
2014.11.13 Amazon發(fā)布AWS Container Service
估計很快我們也將看到Azure的新容器服務(wù)發(fā)布了。
如果我們把之前IaaS公有云提供商的產(chǎn)品看做容器服務(wù)1.0, 這輪新發(fā)布的產(chǎn)品相當(dāng)于2.0升級版。
在1.0中,各廠商引入API、CLI方式向用戶提供在虛擬機中創(chuàng)建容器的簡單能力。
在2.0中,各廠商引入容器集群、業(yè)務(wù)(一組容器,Task/Pods)的概念。對基于容器開發(fā)的用戶來說,似乎在淡化虛擬機存在。用戶完全以容器的方式進(jìn)行管理和業(yè)務(wù)發(fā)放。在資源不足時,才需要往容器集群中增加新的節(jié)點(虛擬機)。
目前國內(nèi)廠商剛剛開始1.0的支持。
Amazon與Google容器方案對比
集群管理
Google的Cluster有一組虛擬機組成,其中包含了一個master節(jié)點和多個node節(jié)點。Google選擇了自己主導(dǎo)的kubernetes作為集群管理工具。Google提供了Replication Controller確保業(yè)務(wù)的多個實例的同時運行。用于提高業(yè)務(wù)的可靠性。
Amazon的Cluster也是由一組虛擬機(在一個region,可以在多個AZ中)組成。每個集群可以創(chuàng)建一個scheduler,負(fù)責(zé)容器在集群中的管理。
業(yè)務(wù)管理
Google提供了Pods,用來管理一個包含多個容器的業(yè)務(wù)。Amazon提供給了Task Define定義一個包含多個容器的業(yè)務(wù),Task是Task Define的實例。
鏡像
Amazon提供了ECS-Enabled AMI(其中包含了agent軟件)供用戶使用。后續(xù)第三方支持Google container service的AMI鏡像也將提供。
Google沒有類似的暴露,而是直接幫助用戶建立一個kubernetes CLuster。
特別的
Google還提供給了Service的概念。因為Pods都是臨時的,隨時可能失效。Service用來完成對Pods的路由,避免Pods消失帶來的業(yè)務(wù)不可訪問。
鏡像倉庫
兩者并未提供自己的Docker鏡像倉庫(可能國外網(wǎng)絡(luò)條件比較好),都是使用外部docker hub或者第三方倉庫。
使用過程
Amazon
創(chuàng)建Cluster
創(chuàng)建Task define,并注冊到Cluster中
創(chuàng)建虛擬機,并注冊到CLuster中
根據(jù)Task define創(chuàng)建若干個Task實例
提供服務(wù)。然后監(jiān)控cluster情況,進(jìn)行Cluseter中虛擬機的增減
創(chuàng)建Cluster
創(chuàng)建Pods
配置外網(wǎng)通信的firewall
原文出自:http://blog.csdn.net/halcyonbaby/article/details/41219863