[AWS]EKS启动HPA,HPA指标<unknown>,报错:error: Metrics API not available

背景:在AWS上创建的EKS集群,想要对于deployment部署HPA,来autoscling副本数。

1.HPA一般基于CPU或者内存对副本数进行控制,所以必须需要Metrics Server。

(Metrics Server 是 Kubernetes 集群的一个关键组件,它负责收集和提供节点和 Pod 的资源使用数据)

如何查看集群有无:Metrics Server

复制代码
kubectl get deployment metrics-server -n kube-system #检查 Metrics Server 状态:

如果没有Metrics Server,使用kubectl top会报错:

error: Metrics API not available

下载部署Metrics Server:

复制代码
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

2.部署HAP,yaml实例参考:

复制代码
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: "给hap取名字"
  namespace: "要部署到的命名空间"
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: "要控制的Deployment的名字"
  minReplicas: 2        #最小数
  maxReplicas: 8        #最大数
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70        #CPU 70%
  - type: Resource
    resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 80      #内存 80%

部署完成之后,使用命令:kubectl get hap -n 命名空间,就可以查看了。

报错:HPA指标<unknown>

这种情况是网上或者AI都会说得很复杂,七七八八的一大堆,其实原因很简单,就是你关联的deployment没有设置resource指标,只要在deployment.yaml中加上如下:

只需要requests字段就可以成功,不需要limit字段,重新部署之后可以看到<unknown>消失了。

不用尝试其他办法了,就是这个原因。

相关推荐
翼龙云_cloud2 小时前
阿里云渠道商:如何使用弹性伸缩来实现计算资源的弹性配置?
服务器·阿里云·云计算
落笔画忧愁e6 小时前
实测:利用腾讯云锐驰型 200M 带宽,搭建无门槛高清视频分发系统
云计算·腾讯云
冬天的风滚草8 小时前
揭秘云原生混布资源调度器Koordinator (十五)GPU 信息采集与上报机制
云计算
冬天的风滚草9 小时前
揭秘云原生混布资源调度器Koordinator (十三)GPU 资源管理总览
云计算
冬天的风滚草9 小时前
揭秘云原生混布资源调度器Koordinator (十四)DeviceShare 调度插件详解
云计算
CodeCaptain12 小时前
阿里云ECS上配置Nginx的反向代理
nginx·阿里云·云计算
有谁看见我的剑了?20 小时前
VMware OVF Tool 工具安装学习
云计算
故乡de云1 天前
Google Cloud与AWS大数据AI服务对比:2026年企业选型指南
大数据·人工智能·aws
盛夏5201 天前
Docker容器化部署SpringBoot+Vue项目:从零到一在阿里云宝塔面板的实践指南
阿里云·docker·云计算
狐571 天前
2026-01-10-云计算问答题部分整理-期末复习
云计算·期末复习