我当时正在探索Google的IaaS/PaaS架构,我对GKE ()如何在Google数据中心运行感到困惑。从本文(http://www.wired.com/2012/07/google-compute-engine/)和一些Google 2012会话中,我了解到GCE (Google )使用KVM (基于内核的虚拟机)运行提供的VM;这些VM运行在基于cgroup的Google容器中(这允许Google按照调度现有基于容器的工作负载的方式调度用户VM;可能使用Borg/Omega)。现在Kubernetes是如何理解这一点的,因为它让您在GCE提供的VM上运行Docker容器,而不是在裸金属上运行?如果我的理解是正确的,那么Kubernetes调度的Docker容器运行在KVM KVM中,KVM本身运行在Borg/Omega调度的Google cgroup容器中.
此外,Kubernetes网络如何融入谷歌现有的GCE Andromeda软件定义的网络?
我知道这是一个非常低层次的架构问题,但我觉得对内部结构的理解将改善我对用户工作负载最终是如何在裸金属上运行的理解。另外,我很好奇,从性能的角度来看,在‘m中运行的整个容器是否是必需的?例如,网络性能不会因为有多个层而下降吗?谷歌在其博格论文(http://research.google.com/pubs/archive/43438.pdf)中提到,他们在没有VM的情况下运行基于容器的工作负载(他们不想支付“虚拟化的成本”);我理解在VM中运行公共外部工作负载的逻辑(更好的隔离、更熟悉的模型、异构的工作负载等),但是对于Kubernetes,我们的工作负载不能直接调度在裸金属上,就像Google自己的工作负载一样?
发布于 2016-03-19 23:17:05
可以在虚拟机和物理机器请参阅此链接上运行Kubernetes。Google的云平台只提供作为服务的虚拟机,这就是为什么Google容器引擎构建在虚拟机之上的原因。在Borg中,容器允许任意大小,并且不为奇数大小的任务支付任何资源代价。
https://stackoverflow.com/questions/36035766
复制相似问题