关于 Google 容器集群中使用的节点的混淆
Confusion about nodes used inside a Google Container Cluster
创建 Google Container Engine 集群时,Container Engine 会创建一个 Compute Engine 托管实例组来管理创建的实例。这些实例来自 Google 计算引擎,这意味着它们是虚拟机。
但是我们在文档页面中看到:"VMs are heavyweight and non-portable. The New Way is to deploy containers based on operating-system-level virtualization rather than hardware virtualization" 这不是自相矛盾吗?如果我错了纠正我。
我们使用容器是因为与 VM 相比它们非常快(无论是在启动时间还是任务执行方面),并且它们节省了大量 space 存储空间。因此,如果我们有一个节点 (vm) 最多可以支持 4 个容器,我们的客户可以快速午餐 4 个容器,但超过这个数字,gcloud autoscaler 将需要午餐一个新节点 (vm) 来支持即将到来的容器,这会产生一些任务延迟。
是否无法在物理机上启动容器?
对于 运行 关键时间执行任务,您有什么建议?
当然可以在物理机上启动容器。事实上,根据 Borg paper(其设计严重影响了 Container Engine/Kubernetes),这是 Google 自己的基础架构中的规范:
Each task maps to a set of Linux processes running in a container on a
machine [62]. The vast majority of the Borg workload does not run
inside virtual machines (VMs), because we don’t want to pay the cost
of virtualization. Also, the system was designed at a time when we had
a considerable investment in processors with no virtualization support
in hardware.
由于 Container Engine 托管在 GCP 中,因此使用 VM 来促进动态配置。然而,与调度到它们上的容器的生命周期相比,这些 VM 的生命周期更长。 Pods 的容器可以在这些 VM 和作业 运行 完成时开启和关闭。但是,当集群升级或调整大小时,虚拟机将被拆除。
Kubernetes可以安装在虚拟机和物理机上(有multiple getting started guides for bare metal)。 Google 的云平台仅提供虚拟机作为服务,这就是 Google 容器引擎构建在虚拟机之上的原因。
创建 Google Container Engine 集群时,Container Engine 会创建一个 Compute Engine 托管实例组来管理创建的实例。这些实例来自 Google 计算引擎,这意味着它们是虚拟机。
但是我们在文档页面中看到:"VMs are heavyweight and non-portable. The New Way is to deploy containers based on operating-system-level virtualization rather than hardware virtualization" 这不是自相矛盾吗?如果我错了纠正我。 我们使用容器是因为与 VM 相比它们非常快(无论是在启动时间还是任务执行方面),并且它们节省了大量 space 存储空间。因此,如果我们有一个节点 (vm) 最多可以支持 4 个容器,我们的客户可以快速午餐 4 个容器,但超过这个数字,gcloud autoscaler 将需要午餐一个新节点 (vm) 来支持即将到来的容器,这会产生一些任务延迟。
是否无法在物理机上启动容器?
对于 运行 关键时间执行任务,您有什么建议?
当然可以在物理机上启动容器。事实上,根据 Borg paper(其设计严重影响了 Container Engine/Kubernetes),这是 Google 自己的基础架构中的规范:
Each task maps to a set of Linux processes running in a container on a machine [62]. The vast majority of the Borg workload does not run inside virtual machines (VMs), because we don’t want to pay the cost of virtualization. Also, the system was designed at a time when we had a considerable investment in processors with no virtualization support in hardware.
由于 Container Engine 托管在 GCP 中,因此使用 VM 来促进动态配置。然而,与调度到它们上的容器的生命周期相比,这些 VM 的生命周期更长。 Pods 的容器可以在这些 VM 和作业 运行 完成时开启和关闭。但是,当集群升级或调整大小时,虚拟机将被拆除。
Kubernetes可以安装在虚拟机和物理机上(有multiple getting started guides for bare metal)。 Google 的云平台仅提供虚拟机作为服务,这就是 Google 容器引擎构建在虚拟机之上的原因。