使用水平缩放选择群集中节点的计算资源

问题描述 投票:0回答:2

水平扩展意味着我们通过在资源池中添加更多计算机来扩展。但是,可以选择群集中每个节点的功率(CPU,RAM)。

使用Kubernetes管理集群时,可以非常轻松地为Pod设置任何CPU和内存限制。如何为群集节点(或Kubernetes中的Pod)选择最佳CPU和内存大小?

例如,群集中有3个节点,每个节点有1个vCPU和1GB RAM。要处理更多负载,有两个选项:

  • 添加带有1个vCPU和1GB RAM的第4个节点
  • 为3个节点中的每个节点添加更多功率(例如2个vCPU和2GB RAM)

一个简单的解决方案是计算每个选项的吞吐量和成本,并选择更便宜的选项。是否有更高级的方法可以选择具有水平可伸缩性的集群中节点的计算资源?

kubernetes cloud cluster-computing scalability horizontal-scaling
2个回答
3
投票

对于这个特定的例子,我会选择2x vCPU而不是另一个1vCPU节点,但这主要是因为我认为在单个vCPU上运行任何严重的操作系统都是错误的。系统表现得体面,需要2个以上的内核,否则很容易压倒一个vCPU并将节点发送到灰尘中。但是,没有理想的算法。这取决于您的预算,工作负载的特征等。

根据经验,不要坚持太小的实例,因为你总是有一堆必须在它们上运行的东西,无论它们的大小和节点越多,开销越大。 3x 4vCpu + 16 / 32GB RAM对于初学者来说听起来不错,但同样......这取决于你想要什么,需要什么,能买得起。


0
投票

答案与延迟和吞吐量等性能指标有关:

  • 延迟是发送请求和接收响应之间的时间间隔。
  • 吞吐量是请求处理速率(每秒请求数)。

延迟会影响吞吐量:更大的延迟=更少的吞吐量。

如果业务事务包含无法并行化的服务的多个顺序调用,则必须根据所需的延迟值选择计算资源(CPU和内存)。在这种情况下,添加更多服务实例(水平扩展)不会对延迟产生任何积极影响。添加更多服务实例可以提高吞吐量,允许并行处理更多请求(如果没有瓶颈)。

换句话说,分配CPU和内存资源,以便服务具有所需的响应时间,并添加更多服务实例(水平扩展)以并行处理更多请求。

© www.soinside.com 2019 - 2024. All rights reserved.