[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>消失了。

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

相关推荐
m0_694845576 小时前
netcut 是什么?简单安全的在线剪贴板搭建与使用教程
运维·服务器·安全·开源·云计算·github
企业智能研究12 小时前
2026,企业如何应用AI Agent赋能业务?
人工智能·云计算·agent
宁远x17 小时前
【万字长文】PyTorch FSDP 设计解读与性能分析
人工智能·pytorch·深度学习·云计算
henry10101018 小时前
利用Python一键创建AWS EC2实例
linux·python·云计算·aws·ec2
JiL 奥18 小时前
AWS之VPC、子网、路由、网关的关系和区别
云计算·aws
brucelee18618 小时前
AWS IoT Core + Lambda + DynamoDB + Redis 完整教程(Java JDK21)
redis·物联网·aws
数新网络18 小时前
赋能某跨境智慧物流:基于 AWS Graviton 的全栈数据平台实现 25% 成本节省
java·云计算·aws
摇滚侠18 小时前
测试阿里云深度研究功能,评价一下 CSDN 博主连杰李的内容
阿里云·云计算
henry10101019 小时前
利用Python一键清理AWS EC2实例
python·云计算·aws
wanhengidc1 天前
私有云具体是指什么
服务器·网络·游戏·智能手机·云计算