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