Kubernetes - 每个节点多个pod vs 每个节点一个pod

4

在Kubernetes中,通常更喜欢采用每个节点一个Pod的配置还是每个节点多个Pod的配置?

从性能角度来看,在同一节点上有多个Pod会带来一些开销,那么有多个Pod的收益在哪里呢?

从性能角度来看,每个节点只有一个Pod可能更好吗?

2个回答

1
你的问题的答案严重依赖于你的工作负载。
有一些非常特定的场景(机器学习、大数据、GPU密集任务),由于某个POD的IO或硬件要求,您可能需要一个节点一个POD的配置。然而,这通常不是资源使用的有效方法,也会削弱容器化的许多优点。
每个节点有多个POD的好处是更高效地利用所有可用资源。一般来说,托管的Kubernetes集群将自动调度和管理在节点上运行的POD数量,并且许多提供商提供简单的自动扩展解决方案,以确保您始终能够运行所有工作负载。

请问您能否详细说明“然而,这通常不是资源的有效利用方式,有点抵消了容器化的许多好处”这句话的意思?您在暗示有些情况下,拥有多个Pod比在一个节点上拥有单个Pod更加高效。您能列举一些这样的情况吗? - user2871354

1

每个节点只运行一个Pod也有其缺点。例如,每个节点都需要自己的“支持” Pod,如度量、日志、网络代理和其他系统Pod,这些Pod很可能不会完全利用其所有资源。从性能上讲,选择正确的节点大小与Pod数量比例可能会导致相同性能的成本更低,而不是每个节点只运行一个Pod。

相反,在大型节点上运行过多的Pod可能会导致资源短缺,并导致指标或日志间隙、丢失数据包等问题。

最后,考虑到自动扩展,将几个Pod扩展到现有节点上比为每个Pod扩展一个新节点要更具响应性。


自动缩放参数对我来说很有意义。支持的Pods参数对我来说还有点模糊。你能详细解释一下吗?例如,假设一个大型Pod可以处理1k QPS,而5个较小的Pod可以分别处理200 QPS。如果指标/日志是QPS的函数,那么在这两种情况下,它们不会以相同的速率使用吗? - user2871354

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接