医生说...
pod(如鲸鱼荚或豌豆荚)是一组一个或多个容器(例如 Docker 容器)、这些容器的共享存储以及有关如何运行容器的选项。Pod 始终位于同一位置并共同调度,并在共享上下文中运行。Pod 模拟一个特定于应用程序的“逻辑主机”——它包含一个或多个相对紧密耦合的应用程序容器——在容器前的世界中,它们将在同一物理或虚拟机上执行。
但我不确定“共同定位”是否意味着在同一个 P̶o̶d̶ 节点上。当卫星位于同一地点时,它们“非常接近,因此对于地面上的接收设备,它们‘似乎’占据了一个轨道位置。” 所以,它可能在同一个集群上,而不是在同一个节点上。
在发布此问题时,我能在此问题上找到的唯一信息是https://platform9.com/blog/compare-kubernetes-vs-ecs/,上面写着......
保证单个 Pod 中的容器在单个 Kubernetes 节点上运行。
现在这听起来很有定论,但我无法在任何地方得到任何证实。我想确保它们是正确的,而不仅仅是误解和传播错误信息。
我要问的原因是,如果这是真的,Kubernetes 似乎天生就是浪费。几乎可以肯定,部署了 pod 的节点会剩余资源。您可能会拥有一个 pod,其需求可以通过这些剩余资源的组合来满足。但是,如果一个 pod 不能跨越多个节点,您将不得不创建一个新节点并拥有更多未使用的资源。
pod 的理念就是协同定位,也就是说,能够在有意义的地方(或需要的地方)定义计算位置。所以,不,根据定义,因为 pod 中的所有容器都将被调度在同一个节点上,所以 pod 不能跨越节点。
另请参阅我对 pod 的评论。话虽如此,我们现在也在 v1.9 中引入了DC/OS中的 Pod 概念。似乎有一定的需求,但我的预感(因为我没有关于它的数据)是它主要是一种安全毯,用于在云原生明智的情况下不能或不能全力以赴.