hpa 中 pods 之间的负载分配

load distribution between pods in hpa

我注意到 cpu 在同一 hpa 中 pods 的利用率从 31m 到 1483m 不等。这是预期的和正常的吗?请参阅下文了解具有相同 hpa 的 8 pods 的 cpu 利用率。

NAME                   CPU(cores)


myapp-svc-pod1            31m
myapp-svc-pod2            87m
myapp-svc-pod3            1061m
myapp-svc-pod4            35m
myapp-svc-pod5            523m
myapp-svc-pod6            1483m
myapp-svc-pod7            122m
myapp-svc-pod8            562m

HPA 的主要目标是生成更多 pods 以将一组 pods 的平均负载保持在特定水平。

HPA 不负责负载平衡和平均连接分配。

对于相等的连接分配负责 k8s 服务,它默认在 iptables 模式下工作,并且 - according to k8s docs - 它随机选择 pods。

您的 cpu 负载分布不均匀很可能是由它处理的数据造成的。为确保这不是 k8s 服务的问题,我建议您导出一些指标,例如连接数和处理一个请求所需的时间。收集完这些数据后,查看一下是否出现了规律。

现在回答你的问题:

Is this expected and normal?

这取决于您认为什么是正常的,但如果您希望 cpu 负载分布更均等,那么您可能需要重新考虑您的设计。很难说你可以做些什么来让它更平等,因为我不知道 myapp-svc-pods 做了什么,但正如我已经提到的,最好看看指标。