关于Google Container Cluster中使用的节点的混淆

时间:2016-03-18 21:35:20

标签: google-app-engine containers kubernetes google-kubernetes-engine

创建Google容器引擎群集后,Container Engine会创建一个Compute Engine托管实例组来管理创建的实例。这些实例来自Google Compute引擎,这意味着它们是虚拟机。

但我们在doc页面中读到:" VM是重量级的,不可移植的。新方法是基于操作系统级虚拟化而不是硬件虚拟化来部署容器。不是矛盾吗?如果我错了,请纠正我。 我们使用容器因为它们与VM相比非常快(无论是在启动时还是执行任务),并且它们节省了大量的空间存储。因此,如果我们有一个节点(vm)可以支持最多4个容器,我们的客户可以快速午餐4个容器,但超过这个数量,gcloud autoscaler将需要在新节点(vm)午餐以支持即将到来的容器,这会产生一些任务延迟。

是否无法在物理机器上启动容器?

您建议如何运行关键时间执行任务?

2 个答案:

答案 0 :(得分:3)

绝对可以在物理机器上启动容器。实际上,根据Borg paper(其设计对Container Engine / Kubernetes的影响很大),这是Google自身基础架构的标准:

  

每个任务映射到一个容器上运行的一组Linux进程   机器[62]。绝大多数Borg工作负载都没有运行   内部虚拟机(VM),因为我们不想支付成本   虚拟化。此外,该系统是在我们拥有的时候设计的   对没有虚拟化支持的处理器进行大量投资   在硬件中。

由于Container Engine托管在GCP中,因此VM用于促进动态配置。但是,与计划在其上的容器的生命周期相比,这些VM的使用寿命很长。可以在这些VM上安排容器的容器,并且可以完成作业。但是,在升级或重新调整群集时,VM会被拆除。

答案 1 :(得分:1)

Kubernetes可以安装在虚拟机和物理机上(有multiple getting started guides for bare metal)。谷歌的云平台仅提供虚拟机即服务,这就是为什么谷歌容器引擎建立在虚拟机之上的原因。