Kubernetes 有人能解释库伯内特斯HPA的这种行为吗?

Kubernetes 有人能解释库伯内特斯HPA的这种行为吗?,kubernetes,amazon-eks,hpa,Kubernetes,Amazon Eks,Hpa,所以这是在EKS K8s v1.15上发生的。您可以在描述输出中看到api版本。毫CPU徘徊在80和120之间。。。这与HPA中的副本计数完全不匹配 以下是YAML: apiVersion:autoscaling/v2beta1 种类:水平足自动秤 元数据: 名称:测序器 名称空间:djin内容 规格: 2005年:1 最大副本数:10 scaleTargetRef: apiVersion:apps/v1 种类:部署 名称:测序器 韵律学: -类型:豆荚 豆荚: metricName:cpu\U

所以这是在EKS K8s v1.15上发生的。您可以在描述输出中看到api版本。毫CPU徘徊在80和120之间。。。这与HPA中的副本计数完全不匹配

以下是YAML:

apiVersion:autoscaling/v2beta1 种类:水平足自动秤 元数据: 名称:测序器 名称空间:djin内容 规格: 2005年:1 最大副本数:10 scaleTargetRef: apiVersion:apps/v1 种类:部署 名称:测序器 韵律学: -类型:豆荚 豆荚: metricName:cpu\U使用率 目标平均值:500 以下是kubectl的描述:

[root@ip-10-150-53-173~]#kubectl描述hpa-n djin含量
名称:测序器
名称空间:djin内容
标签:
注释:kubectl.kubernetes.io/last-applicated-configuration:
{“apiVersion”:“autoscaling/v2beta1”,“种类”:“HorizontalPodAutoscaler”,“元数据”:{“annotations”:{},“name”:“sequencer”,“namespace”:“djin con…”。。。
CreationTimestamp:Wed,2020年8月5日20:40:37+0000
参考:部署/序列器
指标:(当前/目标)
吊舱上的“cpu_使用率”:122m/500
最小副本数:1
最大副本数:10
部署吊舱:7个当前吊舱/7个所需吊舱
条件:
键入状态原因消息
----            ------  ------              -------
能够缩放真实成功缩放HPA控制器能够将目标缩放更新为4
ScalingActive True ValidMetric发现HPA能够根据pods度量cpu_使用情况成功计算副本计数
ScalingLimited False DesiredWithinRange所需计数在可接受范围内
活动:
从消息中键入原因年龄
----    ------             ----                 ----                       -------
正常成功重新缩放34m水平吊舱自动缩放器新尺寸:10;原因:吊舱度量cpu_使用率高于目标
正常成功重新缩放15m(x2/34m)水平吊舱自动缩放器新尺寸:6;原因:吊舱公制cpu_使用率高于目标
正常成功重新缩放10米水平吊舱自动缩放器新尺寸:5;原因:所有指标低于目标
正常成功重新缩放9m51s(x2超过23m)水平吊舱自动缩放器新尺寸:3;原因:所有指标低于目标
正常成功重新缩放5m(x2/16m)水平机架自动缩放器新尺寸:4;原因:机架公制cpu_使用率高于目标
正常成功重新缩放4m45s(x2大于15m)水平吊舱自动缩放器新尺寸:5;原因:吊舱度量cpu_使用率高于目标
正常成功重新缩放4m30s水平吊舱自动缩放器新尺寸:7;原因:吊舱度量cpu_使用率高于目标

自定义度量API填充正确/频繁且运行良好。部署目标非常有效…我已经检查了整个k8s代码库,用于此API和副本计算,这没有任何意义…

看起来度量不匹配,您有122m(milicores)和500个原始值

吊舱上的“cpu使用率”:122m/500 您没有指定计算自定义度量的内容,可能是在
122m
中添加了一个额外的
0
,使其成为
1220/500
(我假设
cpu\u使用量
是自定义度量,因为常规度量服务器度量只是
cpu
),但您可以尝试:

目标平均值:500米
对CPU使用率执行HPA的更常见方法是使用metrics服务器的CPU使用率百分比

apiVersion:autoscaling/v2beta2 种类:水平足自动秤 元数据: 名称:php apache 名称空间:默认值 规格: scaleTargetRef: apiVersion:apps/v1 种类:部署 名称:php apache 2005年:1 最大副本数:10 targetCPU利用率:50 ...
缩放活动由K8s控制平面中的管理,如果您启用了EKS控制平面日志,您也可以在那里查看以查找更多信息。我不久前找到了这个问题的答案,但忘记了更新。这在一个著名的K8s项目中就这个主题进行了详细讨论。它本质上是一个设计bk8s HPA定位中的ug(功能?):

如果您指定的是
targetAverageValue:500m
而不是
targetAverageValue:500
,这有关系吗?不,Kubernetes的本机单位是毫。每当您提到没有单位的东西时,默认值是1/1000。因此,当定义为500m时,行为是相同的。注释不用于扩展讨论;这段对话已经结束。