kubernetes HPA不起作用,因为HPA使用"completed"状态读取cronjobs资源,

os8fio9y  于 10个月前  发布在  Kubernetes
关注(0)|答案(6)|浏览(117)

发生了什么?

HPA目标状态未知。

  1. k get hpa
  2. NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
  3. {{name}} Deployment/{{deployment}} <unknown>/50% 1 10 1 105m

但是,部署和pod资源设置是正常的。

  1. kubectl get -o json deployment {{deployment}} | jq '.spec.template.spec.containers[].resources'
  2. {
  3. "limits": {
  4. "cpu": "1",
  5. "memory": "1500Mi"
  6. },
  7. "requests": {
  8. "cpu": "500m",
  9. "memory": "1000Mi"
  10. }
  11. }

metric-server日志找到了。
hpa设置正常。
hpa.yaml

  1. apiVersion: v1
  2. items:
  3. - apiVersion: autoscaling/v2
  4. kind: HorizontalPodAutoscaler
  5. metadata:
  6. labels:
  7. hpa.test: hpa
  8. name: {{name}}
  9. namespace: {{namespace}}
  10. spec:
  11. maxReplicas: 10
  12. metrics:
  13. - resource:
  14. name: cpu
  15. target:
  16. averageUtilization: 50
  17. type: Utilization
  18. type: Resource
  19. minReplicas: 1
  20. scaleTargetRef:
  21. apiVersion: apps/v1
  22. kind: Deployment
  23. name: {{deployment name}}

(cronjobs没有hpa.test: hpa标签,但deployment有hpa.test: hpa标签)
HPA生成一些日志

  1. k describe hpa
  2. ...
  3. Type Reason Age From Message
  4. ---- ------ ---- ---- -------
  5. Warning FailedGetResourceMetric 49m (x13 over 101m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu in container {{cronjob container}} of Pod {{cronjob pod name}}
  6. Warning FailedGetResourceMetric 39m (x72 over 110m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu in container {{cronjob container}} of Pod {{cronjob pod name}}
  7. Warning FailedGetResourceMetric 34m (x7 over 99m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu in container {{cronjob container}}of Pod {{cronjob pod name}}
  8. Warning FailedGetResourceMetric 29m (x2 over 82m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu in container {{cronjob container}}of Pod {{cronjob pod name}}
  9. Warning FailedGetResourceMetric 19m (x4 over 63m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu in container {{cronjob container}} of Pod {{cronjob pod name}}
  10. Warning FailedGetResourceMetric 14m (x5 over 85m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu in container {{cronjob container}} of Pod {{cronjob pod name}}
  11. Warning FailedGetResourceMetric 4m50s (x167 over 106m) horizontal-pod-autoscaler (combined from similar

有很多pod的状态是"Completed"

  1. k get po
  2. NAME READY STATUS RESTARTS AGE
  3. {{deployment name}} 1/1 Running 0 19m
  4. {{cronjob pod }} 0/1 Completed 4 7h43m
  5. {{cronjob pod }} 0/1 Completed 3 5h43m
  6. {{cronjob pod }} 0/1 Completed 3 163m
  7. {{cronjob pod }} 0/1 Completed 4 6h53m

所以,我认为hpa不仅读取deployment的指标,还读取cronjob的指标。

你期望发生什么?

我期望hpa能表达一个精确的数字。

我们如何尽可能最小精确地重现它?

一起部署deployment和cronjob,并将cronjob置于已完成状态。

我们需要了解其他信息吗?

  • 无响应*

Kubernetes版本

  1. v1.28.5

云提供商

AWS EKS

OS版本

  1. # On Linux:
  2. $ cat /etc/os-release
  3. # paste output here
  4. $ uname -a
  5. # paste output here
  6. # On Windows:
  7. C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
  8. # paste output here

安装工具

容器运行时(CRI)和版本(如适用)

相关插件(CNI,CSI,...)和版本(如适用)

1bqhqjot

1bqhqjot1#

这个问题目前正在等待分类。
如果SIG或子项目确定这是一个相关的问题,他们将通过应用triage/accepted标签并提供进一步的指导来接受它。
组织成员可以通过在评论中写入/triage accepted来添加triage/accepted标签。
有关使用PR评论与我互动的说明,请查看here。如果您对我的行为有任何问题或建议,请针对kubernetes/test-infra仓库提出一个问题。

j5fpnvbx

j5fpnvbx2#

/area autoscaler

ilmyapht

ilmyapht3#

@AmarNathChary: 标签 area/autoscaler 无法应用,因为仓库中没有它们。
对此的回应:
/area autoscaler
使用 PR 评论与我互动的说明已提供。如果您对我的行为有任何疑问或建议,请针对 kubernetes/test-infra 仓库提交一个问题。

mfuanj7w

mfuanj7w4#

/sig autoscaling

hof1towb

hof1towb5#

Kubernetes项目目前缺乏足够的贡献者来充分应对所有问题。
此机器人根据以下规则对未分类的问题进行分级处理:

  • lifecycle/stale应用后的90天内无活动,将应用lifecycle/stale
  • lifecycle/stale应用后的30天内无活动,将应用lifecycle/rotten
  • lifecycle/rotten应用后的30天内无活动,将关闭该问题

您可以:

  • 使用/remove-lifecycle stale标记此问题为新鲜
  • 使用/close关闭此问题
  • 提供帮助,使用Issue Triage

请将反馈发送至sig-contributor-experience@kubernetes/community
/lifecycle stale

展开查看全部
hs1ihplo

hs1ihplo6#

Kubernetes项目目前缺乏足够的活跃贡献者来充分应对所有问题。
此机器人根据以下规则对未分类的问题进行分级处理:

  • lifecycle/stale应用后的90天内无活动,将应用lifecycle/stale
  • lifecycle/stale应用后的30天内无活动,将应用lifecycle/rotten
  • lifecycle/rotten应用后的30天内无活动,将关闭该问题

您可以:

  • 使用/remove-lifecycle rotten标记此问题为新鲜
  • 使用/close关闭此问题
  • 提供帮助,使用Issue Triage

请将反馈发送至sig-contributor-experience@kubernetes/community
/lifecycle rotten

展开查看全部

相关问题