Kubernetes HPA未按比例缩小
我希望你能对此有所了解 我面临的问题与这里描述的相同: 我的配置几乎相同 我已经检查了hpa算法,但是我找不到一个解释,说明我只有一个my-app3的副本。 有什么提示吗 kubectl get hpa -A NAMESPACE NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE my-ns1 my-app1 Deployment/my-app1 49%/75%, 2%/75% 1 10 2 20h my-ns2 my-app2 Deployment/my-app2 50%/75%, 10%/75% 1 10 2 22h my-ns2 my-app3 Deployment/my-app3 47%/75%, 10%/75% 1 10 1 22h kubectl获得hpa-A 命名空间名称引用的目标是MINPODS MAXPODS副本 my-ns1 my-app1部署/my-app1 49%/75%,2%/75%1102 20h my-ns2 my-app2部署/my-app2 50%/75%,10%/75%1 10 2 22小时 my-ns2 my-app3部署/my-app3 47%/75%,10%/75%110 22小时 kubectl top po-A 名称空间名称CPU(核心)内存(字节) my-ns1 pod-app1-8d694bc8f-mkbrh 1m 76Mi my-ns1 pod-app1-8d694bc8f-qmlnw 1m 72Mi my-ns2 pod-app2-59d895d96d-86fgm 1m 77Mi my-ns2 pod-app2-59d895d96d-zr67g 1m 73Mi my-ns2 pod-app3-6f8cbb68bf-vdhsd 1m 47MiKubernetes HPA未按比例缩小,kubernetes,hpa,Kubernetes,Hpa,我希望你能对此有所了解 我面临的问题与这里描述的相同: 我的配置几乎相同 我已经检查了hpa算法,但是我找不到一个解释,说明我只有一个my-app3的副本。 有什么提示吗 kubectl get hpa -A NAMESPACE NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE my-ns1 my-app1
事实上,根据我的研究,HPA算法似乎是这样工作的:
不知道为什么my-app3分配了一个副本,而另外两个应用分配了两个副本,但根据算法,此时不需要扩展。发布此答案,因为社区成员可能会受益于此,了解为什么
水平吊舱自动缩放器
决定不扩展此特定设置中的副本数量
副本工作量的计算公式为:
desiredReplicas=ceil[currentReplicas*(currentMetricValue/desiredMetricValue)]
以下是对HPA的描述:
命名空间名称引用的目标是MINPODS MAXPODS复制副本
my-ns1 my-app1部署/my-app1 49%/75%,2%/75%1102 20h
my-ns2 my-app2部署/my-app2 50%/75%,10%/75%1 10 2 22小时
my-ns2 my-app3部署/my-app3 47%/75%,10%/75%110 22小时
HPA
根据副本的当前数量决定副本的数量
旁注:在使用多个指标(例如CPU
和RAM
)的设置中,它将使用更高的指标并相应地采取行动
也请考虑。
对每个
部署的计算
ceil[]
-将数字四舍五入:
- ceil(4,55)=5
- ceil(4,01)=5
app1
:
=ceil[副本
*(2
/49
)]75
=ceil[副本
*2
]06533..
=ceil[副本
]13066..
=副本
2
- Up当
(currentMetricValue
)将超过49
所需的度量值时(
)75
- 当
(currentMetricValue
)将小于49
所需计量值的一半时(
)75
app2
与app1
处于相同的情况,因此可以跳过它
app3
:
=ceil[副本
*(1
/49
)]75
=ceil[副本
*1
]06266..
=ceil[副本
]06266..
=副本
1
- Up当
(currentMetricValue
)超过47
所需的度量值时(
)75
额外资源:
HPA
没有扩大/缩小部署的原因。如果您找到了原因,请回答您的问题,以帮助社区解决类似问题。PS:my-app3
将在目标值高于75%时扩展到2个副本<当目标值小于37.5%时,代码>my-app2
将扩展到1个副本。
kubectl top po -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
my-ns1 pod-app1-8d694bc8f-mkbrh 1m 76Mi
my-ns1 pod-app1-8d694bc8f-qmlnw 1m 72Mi
my-ns2 pod-app2-59d895d96d-86fgm 1m 77Mi
my-ns2 pod-app2-59d895d96d-zr67g 1m 73Mi
my-ns2 pod-app3-6f8cbb68bf-vdhsd 1m 47Mi