0

我希望你能对此有所了解。

我面临与此处所述相同的问题:即使使用量低于阈值,Kubernetes 部署也不会缩减

我的配置几乎相同。

我检查了 hpa 算法,但我找不到我只有一个 my-app3 副本的解释。有什么提示吗?

kubectl 获取 hpa -A

命名空间名称参考目标 MINPODS MAXPODS REPLICAS AGE
my-ns1 my-app1 部署/my-app1 49%/75%, 2%/75% 1 10 2 20h
my-ns2 my-app2 部署/my-app2 50%/75%, 10%/75% 1 10 2 22h
my-ns2 my-app3 部署/my-app3 47%/75%, 10%/75% 1 10 1 22h
kubectl top po -A

NAMESPACE NAME CPU(cores) MEMORY(bytes)              
我的-ns1 pod-app1-8d694bc8f-mkbrh 1m 76Mi            
我的-ns1 pod-app1-8d694bc8f-qmlnw 1m 72Mi            
我的-ns2 pod-app2-59d895d96d-86fgm 1m 77Mi            
my-ns2 pod-app2-59d895d96d-zr67g 1m 73Mi            
我的-ns2 pod-app3-6f8cbb68bf-vdhsd 1m 47Mi
4

2 回答 2

1

事实上,根据我的研究,HPA 算法似乎以这种方式工作: https ://kubernetes.io/docs/tasks/run-application/horizo​​ntal-pod-autoscale/#algorithm-details

不知道为什么 my-app3 分配了一个副本,另外两个应用程序分配了两个副本,但是根据算法,此时不需要横向扩展。

于 2021-01-15T15:55:32.583 回答
0

发布此答案,因为它可能有助于社区成员了解为什么Horizontal Pod Autoscaler决定扩展此特定设置中的副本数量。

副本工作量的公式为:

desiredReplicas = ceil[ currentReplicas * ( currentMetricValue / desiredMetricValue )]

以下描述HPA

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

HPA在当前数量的前提下决定副本的数量

附注:在使用多个指标(例如CPURAM)的设置中,它将使用更高的指标并采取相应的行动。

还请考虑缩小规模有冷却时间


计算每个Deployments

ceil[]- 向上取整:

  • 细胞(4,55)= 5
  • 细胞(4,01)= 5

app1

  • Replicas= ceil[ 2* ( 49/ 75)]
  • Replicas=细胞[ 2* 0,6533..]
  • Replicas=细胞[ 1,3066..]
  • Replicas=2

此示例表明副本数量不会发生变化。

副本数量将变为:

  • currentMetricValue( 49) 超过desiredMetricValue( 75)时上升
  • currentMetricValue( 49)小于desiredMetricValue( 75)的一半时下降

app2处于相同的情况,app1因此可以跳过

app3

  • Replicas= ceil[ 1* ( 49/ 75)]
  • Replicas=细胞[ 1* 0,6266..]
  • Replicas=细胞[ 0,6266..]
  • Replicas=1

此示例还表明,副本数量不会发生变化。

副本数量将变为:

  • currentMetricValue( 47) 超过desiredMetricValue( 75)时上升

其他资源:

于 2021-01-18T08:20:01.300 回答