Docker for AWS(https://docs.docker.com/docker-for-aws/release-notes/)与Docker Machine正好相反。对于Swarm集群,Docker for AWS是一个完整的解决方案。虽然Docker Machine不外乎是用来创建EC2实例和安装Docker Engine,但是Docker for AWS设置了很多我们可能很难自己设置的东西。Autoscaling groups、VPCs、subnets和ELB只是我们接触到的其中几个。
使用Docker for AWS,可以不用做什么就能创建和管理Swarm集群。选择需要多少manager和多少worker,点击“Create Stack”按钮,等待几分钟。仅此而已。
还有一些好处。Docker for AWS配备了一个专门为运行容器而设计的新操作系统。
给了Docker for AWS这么多赞扬,意味着这是最好的选择吗?不一定。一方面取决于你的需求和应用场景。如果Docker for AWS所提供的正是你所需要的,那么选择就很简单。就使用Docker for AWS好了。另一方面,如果你想要改变它的某些方面或添加一些不支持的特性,则可能会觉得很困难。修改或扩展它并不容易。
例如,Docker for AWS将所有日志输出到Amazon CloudWatch(https:// aws.amazon.com/clodwtch/)。一方面,如果CloudWatch是你想要放置日志的地方,那么这很棒。另一方面,如果你想要用使ELKstack、DataDog或者别的日志解决方案,那么会发现修改默认设置并不是那么简单。
让我们看看另外一个例子。如果你想要添加持久性存储,那么该怎么做呢?你可能会在所有服务器上挂载一个EFS卷,但这不是最佳解决方案。你可能想尝试使用RexRay或Flocker。如果是这样的话,那么你会再次发现,扩展系统并不是那么简单。你可能最终会修改CloudFormation模板,并且存在无法升级到新的Docker for AWS版本的风险。(https://www.xing528.com)
有没有提过Docker for AWS还很年轻?撰写本书的时候,它或多或少是稳定的,但仍然有它的问题。
除了问题以外,它还缺乏一些特性,比如持久性存储。所有这些负面的东西并不意味着你应该放弃Docker for AWS。这是一个很好的方案,只会随着时间的推移而变得更好。
最后的建议是,如果Docker for AWS提供了你所需要的一切,或者你不想从头开始一个新的方案,那么就去用它吧。无论使用什么样的工具,如果你已经有了一组需求需要实现,这才是最大的障碍。
如果你决定在AWS中托管集群,并且不想花时间学习它的所有服务是如何工作的,那就不用再看其他方案了。Docker for AWS就是你所需要的。你不必学习那些可能需要或不需要的服务,例如安全组、VPCs、弹性IP,以及很多其他的服务。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
