关于容器引擎的简短问题:我为什么要使用它而不是仅仅在普通 VM(在计算引擎中)处理我的 docker 容器?这样可以省点钱
问候, 马克
关于容器引擎的简短问题:我为什么要使用它而不是仅仅在普通 VM(在计算引擎中)处理我的 docker 容器?这样可以省点钱
问候, 马克
在小范围内,在普通虚拟机中运行容器是可以的。谷歌甚至提供了一个容器优化的图像,使这变得非常容易。而且它绝对比运行 Kubernetes 集群(在 Google Container Engine 或您自己中)更便宜。
Kubernetes / GKE 真正强大的是集群管理 API。它允许您使用 CLI/UI 或其他程序自省在您的计算上运行的所有容器。对于普通的虚拟机,要找出您正在运行的所有容器,您要么需要重复 ssh 到每个虚拟机并运行docker ps
,要么专门构建您的容器以“打电话回家”到中央容器版本授权机构(这赢得了如果您想使用现成的容器,这是不可能的)。使用 Kubernetes,您可以kubectl get pods
通过一个命令知道您正在运行的所有内容。您可以使用为应用程序管理构建的构造,例如部署(或kubectl rolling-update
) 来推送新版本的容器,而无需重新启动任何虚拟机。您还可以为您的容器获得集群范围的日志记录和监控。
这是使用您自己的基础架构或按服务付费的方法的一般问题。这可能最好用经济来解释(您是否有前期的内存来在自己的硬件上进行大量投资来创建虚拟机?)
但也存在技术问题:通过付费服务,您可以摆脱供电或连接的问题,或硬件维护,或较低级别的管理,或...当然,这也意味着您无法影响您的提供商如何(快速、昂贵、适合您的需求等)解决这些问题。
简而言之:使用 VM,您有更多的自由,但也有更多的工作和可能更高的前期成本(还有您自己的劳动力成本,因此启动项目的重要部分需要更多时间)。有偿服务总财务成本可能更高,但成本会及时分摊。您对平台的自由度较低,但这也意味着您可以专注于与您的特定应用程序相关的更高级别的问题 - 您可以更快地开始考虑它们。
您还可以同时考虑两者——例如为灾难恢复、测试或备份提供额外的计算能力。