Google compute engine Google容器引擎架构

Google compute engine Google容器引擎架构,google-compute-engine,kubernetes,google-kubernetes-engine,Google Compute Engine,Kubernetes,Google Kubernetes Engine,我当时正在探索Google的IaaS/PaaS的体系结构,我对GKE(Google容器引擎)如何在Google数据中心运行感到困惑。从本文()和一些Google IO 2012会话中,我发现GCE(Google Compute Engine)使用KVM(基于内核的虚拟机)运行配置的虚拟机;这些虚拟机运行在谷歌基于cgroups的容器中(这允许谷歌以与调度现有基于容器的工作负载相同的方式调度用户虚拟机;可能使用Borg/Omega)。现在Kubernetes是如何理解这一点的,因为它让您在GCE配

我当时正在探索Google的IaaS/PaaS的体系结构,我对GKE(Google容器引擎)如何在Google数据中心运行感到困惑。从本文()和一些Google IO 2012会话中,我发现GCE(Google Compute Engine)使用KVM(基于内核的虚拟机)运行配置的虚拟机;这些虚拟机运行在谷歌基于cgroups的容器中(这允许谷歌以与调度现有基于容器的工作负载相同的方式调度用户虚拟机;可能使用Borg/Omega)。现在Kubernetes是如何理解这一点的,因为它让您在GCE配置的虚拟机上运行Docker容器,而不是在裸机上?如果我的理解是正确的,那么Kubernetes调度的Docker容器在KVM VM中运行,KVM VM本身在Borg/Omega调度的Google cgroups容器中运行

此外,Kubernetes网络如何与谷歌现有的GCE Andromeda软件定义的网络相适应


我知道这是一个非常低级的体系结构问题,但我觉得对内部结构的理解将改善我对用户工作负载最终如何在裸机上运行的理解。另外,我很好奇,从性能的角度来看,是否需要在容器中的VM上运行整个容器?例如,网络性能不会因为多层而降低吗?谷歌在其博格论文()中提到,他们在没有虚拟机的情况下运行基于容器的工作负载(他们不想支付“虚拟化成本”);我理解在虚拟机中运行公共外部工作负载的逻辑(更好的隔离、更熟悉的模型、异构工作负载等),但对于Kubernetes,我们的工作负载不能像Google自己的工作负载那样直接在裸机上调度吗?

可以在虚拟机和物理机上运行Kubernetes。谷歌的云平台仅将虚拟机作为服务提供,这就是为什么谷歌容器引擎构建在虚拟机之上的原因。
在Borg中,容器允许任意大小,并且它们不会为奇数大小的任务支付任何资源罚款。

可以在虚拟机和物理机上运行Kubernetes。谷歌的云平台仅将虚拟机作为服务提供,这就是为什么谷歌容器引擎构建在虚拟机之上的原因。 在Borg中,容器允许任意大小的任务,并且它们不为奇数大小的任务支付任何资源罚款