对于自动伸缩时GKE中用于过度配置资源的公式,我发现了两种解释。
根据以下两个来源:
-
自动缩放和过度配置
-
使用GKE自动缩放:集群和节点
公式:
(1 - buffer) / (1 + traffic)
地点:
buffer: percentage of CPU buffer that you reserve, so your workloads do not get to 100% CPU utilization
traffic: percentage of traffic increase(expected) in the following two or three minutes
将为HPA提供新资源利用率目标的值,以适当地处理预期的流量增长,同时最小化额外的资源分配。
因此,例如,如果您有以下值:
buffer: 15%, so you would get a CPU utilization of up to 85%
traffic: 30% increase in the next two or three minutes
target utilization = (1 - 0.15) / (1 + 0.30) = 0.85 / 1.3 = 0.65384615
target utilization = 65%
根据这两个来源的解释,65%是HPA的优化目标利用率。。然后,获得35%的超额供应资源在现有节点中调度新的pod,而集群自动缩放器(和节点自动配置器)将在需求高峰期间分配新节点。
问题是实验室在"优化更大的负载"一节中的理解和组合GKE自动缩放策略;(版本:Manual最后更新:2021年3月19日)确定65%的值将是您需要分配的超额资源的百分比。
因此,根据前两个来源:
- 资源过剩百分比:35%
但根据实验室的"理解和结合GKE自动缩放策略":
- 资源过剩百分比:65%
哪一个是正确的解释?
恕我直言,正确的解释是过度供应的值等于35%。该公式为HPA提供了一个新的资源利用目标,该目标涉及(新的)流量需求(而不是要分配的多余资源的百分比)。
是的,第一种解释是正确的。在第一种解释中,他们将过度配置计算为未使用的资源超过集群的总大小,因为水平Pod自动缩放配置为将资源利用率保持在~65%,因此您有100% - 65% = 35%未使用的资源,这是HPA的新目标资源利用率值。
在第二种解释中,即"理解和结合GKE自动缩放策略",他们似乎考虑了"超额配置百分比"。随着"需要"的计算能力增加多少;计算资源。换句话说,您有一个3个节点的集群,需要运行您的工作负载,并且您在上面添加了2个节点,这使得您已经超额配置了集群2/3 = 66.6666% ~= 65%。
第一种解释更直观,在实际使用中更有意义。