You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS中HPA无法获取CPU利用率报missing request for cpu如何解决

问题根因

你遇到的HPA报错属于EKS环境部署HPA的常见问题,报错missing request for cpu属于误导性提示,核心原因有两个:

  1. EKS集群默认未预装metrics-server组件,而HPA必须依赖该组件采集Pod的CPU、内存使用率指标
  2. 配置的CPU请求未在实际运行的Pod中生效

解决步骤

步骤1:安装metrics-server组件

首先确认集群中是否已部署该组件:

kubectl get pods -n kube-system | grep metrics-server

如果没有返回正常运行的Pod,直接安装Kubernetes官方维护的metrics-server组件即可,EKS环境无需额外修改配置,部署完成后等待2-3分钟待组件完全启动。

步骤2:验证Pod的CPU请求配置生效

执行以下命令确认运行中的Pod已经加载了CPU请求配置,把命令中的Pod名称替换为你实际运行的demo-flask-backend Pod名:

kubectl get pod <demo-flask-backend-pod名称> -o jsonpath='{.spec.containers[0].resources.requests.cpu}'

如果返回为空,说明Deployment配置更新后未生效,重新apply配置即可:

kubectl apply -f flask-deployment.yaml

执行后等待Pod自动重建完成。

步骤3(可选):升级HPA配置为v2版本

你当前使用的autoscaling/v1属于旧版本API,仅支持CPU指标,如果你集群版本为1.23及以上,可以替换为兼容性更好的autoscaling/v2版本配置,参考如下:

---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: demo-flask-backend-hpa
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: demo-flask-backend
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 30

更新后重新apply HPA配置:

kubectl apply -f flask-hpa.yaml

效果验证

所有配置完成后等待5分钟左右,再执行kubectl get hpa即可看到正常的CPU使用率数值,HPA可以正常触发扩容逻辑。


内容的提问来源于stack exchange,提问作者Jun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:06:03