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

Kubernetes 水平缩放选择集群中节点的计算资源,kubernetes,cloud,cluster-computing,scalability,horizontal-scaling,Kubernetes,Cloud,Cluster Computing,Scalability,Horizontal Scaling,水平扩展意味着我们通过向资源池中添加更多的机器来扩展。不过,集群中每个节点的功率(CPU、RAM)仍有选择 当使用Kubernetes管理集群时,为POD设置任何CPU和内存限制都非常容易。如何为集群节点(或Kubernetes中的POD)选择最佳CPU和内存大小 例如,集群中有3个节点,每个节点有1个vCPU和1GB RAM。要处理更多负载,有两个选项: 添加具有1个vCPU和1GB RAM的第4个节点 向3个节点中的每个节点添加更多电源(例如,2个vCPU和2GB RAM) 一个简单的解

水平扩展意味着我们通过向资源池中添加更多的机器来扩展。不过,集群中每个节点的功率(CPU、RAM)仍有选择

当使用Kubernetes管理集群时,为POD设置任何CPU和内存限制都非常容易。如何为集群节点(或Kubernetes中的POD)选择最佳CPU和内存大小

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

  • 添加具有1个vCPU和1GB RAM的第4个节点
  • 向3个节点中的每个节点添加更多电源(例如,2个vCPU和2GB RAM)

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

对于这个特定示例,我会选择2x vCPU,而不是另一个1vCPU节点,但这主要是因为我认为在单个vCPU上运行任何严重的操作系统都是错误的。要使系统正常运行,需要2+个可用内核,否则很容易将一个vCPU压得喘不过气来,并将节点送入尘埃之中。不过,目前还没有理想的算法。这将取决于您的预算、工作负载的特点等


作为经验法则,不要坚持使用太小的实例,因为您必须始终在它们上运行大量的东西,而不管它们的大小,节点越多,开销就越大。3x4VCPU+16/32GB RAM对于初学者来说听起来是个不错的计划,但再一次。。。这取决于你想要什么,需要什么,能买得起什么。

对于这个特定的例子,我会选择2x vCPU而不是另一个1vCPU节点,但这主要是因为我认为在一个vCPU上运行操作系统是错误的。要使系统正常运行,需要2+个可用内核,否则很容易将一个vCPU压得喘不过气来,并将节点送入尘埃之中。不过,目前还没有理想的算法。这将取决于您的预算、工作负载的特点等


作为经验法则,不要坚持使用太小的实例,因为您必须始终在它们上运行大量的东西,而不管它们的大小,节点越多,开销就越大。3x4VCPU+16/32GB RAM对于初学者来说听起来是个不错的计划,但再一次。。。这取决于你想要什么、需要什么和能负担得起什么。

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

  • 延迟是发送请求和接收响应之间的时间间隔
  • 吞吐量是请求处理速率(每秒请求数)
延迟对吞吐量有影响:延迟越大,吞吐量越小

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


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

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

  • 延迟是发送请求和接收响应之间的时间间隔
  • 吞吐量是请求处理速率(每秒请求数)
延迟对吞吐量有影响:延迟越大,吞吐量越小

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

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