Kubernetes pod 可以跨节点吗?

Kubernetes pod 可以跨节点吗?

文档说...

pod(如鲸鱼群或豌豆荚)是一组一个或多个容器(如 Docker 容器)、这些容器的共享存储以及如何运行容器的选项。pod 始终位于同一位置并共同调度,并在共享上下文中运行。pod 模拟特定于应用程序的“逻辑主机” - 它包含一个或多个相对紧密耦合的应用程序容器 - 在容器出现之前的世界中,它们将在同一物理或虚拟机上执行。

但我不确定“共置”是否意味着在同一个 P̶o̶d̶ 节点上。当卫星位于同一位置时它们“距离很近,以至于对于地面上的接收设备来说,它们‘似乎’占据着一个轨道位置。”所以,它们可能在同一个集群上,而不是同一个节点上。

在发布这篇文章时,我能找到的关于这个问题的唯一信息是https://platform9.com/blog/compare-kubernetes-vs-ecs/其中说...

保证单个 Pod 中的容器在单个 Kubernetes 节点上运行。

现在这听起来很有说服力,但我还没有在任何地方得到任何证实。我想确保他们是正确的,而不是误解和传播错误信息。

我之所以问这个问题,是因为如果这是真的,那么 Kubernetes 似乎天生就很浪费。几乎可以肯定的是,部署了 Pod 的节点会剩余资源。很可能你会有一个 Pod,它的需求可以通过这些剩余资源的组合来满足。但是,如果一个 Pod 不能跨越多个节点,你将不得不创建一个新节点,并且会有更多未利用的资源。

答案1

Pod 的本质是共置,即能够在有意义的地方(或需要的地方)定义计算位置。因此,根据定义,由于 Pod 中的所有容器都将在同一个节点上调度,因此 Pod 不能跨节点。

另请参阅我的对 pod 的批评话虽如此,我们在数据中心/操作系统现在也有 v1.9。似乎有一定的需求,但我的直觉(因为我没有这方面的数据)是,它主要是针对那些不想或不能全力以赴的情况的一种安全措施,从云原生的角度来看。

相关内容