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

Kubernetes HPA无法获取metrics报错且部署HPA后metrics-server崩溃问题

问题根因&解决方案

1. 直接报错原因:Deployment容器未全量配置CPU资源请求

你当前的bot-deployment中仅wallet容器配置了resources.requests.cpu字段,bot-api容器没有配置任何CPU/内存资源请求。
HPA计算CPU平均利用率时,需要以Pod内所有容器的CPU请求总和作为计算分母,只要有一个容器未配置CPU请求,就无法生成合法的利用率指标,直接触发no metrics returned from resource metrics API报错。
修复方法:给bot-api容器补充resources配置,示例如下:

containers:
- name: bot-api
  image: gcr.io/<repo>
  ports:
  - containerPort: 5600
  resources: # 补充该配置段
    requests:
      cpu: 200m # 可根据实际业务负载调整
    limits:
      cpu: 500m # 可根据实际业务负载调整
  volumeMounts:
  - name: bot-volume
    mountPath: /core

2. 部署HPA后metrics-server崩溃的排查方向

先采集metrics-server的运行日志和状态,定位崩溃原因:

  • 执行命令查看崩溃前的日志:kubectl logs -n kube-system -l k8s-app=metrics-server --previous
  • 执行命令查看Pod事件:kubectl describe pod -n kube-system -l k8s-app=metrics-server
    常见触发原因及修复方案:
  • 资源不足OOM被杀:metrics-server本身的CPU/内存配额配置过低,HPA启动后持续拉取指标导致负载升高触发OOM,调高metrics-server的resources配置即可
  • 版本不兼容:metrics-server版本与K8s集群版本不匹配,需确认对应版本适配关系,比如K8s 1.21+建议使用metrics-server v0.5+版本,1.19及以下建议使用v0.4.x版本
  • APIService配置异常:执行kubectl get apiservice v1beta1.metrics.k8s.io查看状态,如果STATUS不是Available,需要检查metrics-server的服务发现、证书配置是否正确

3. 修复后验证步骤

  1. 重新部署补充完resources配置的Deployment,确保Pod正常启动
  2. 先验证metrics-server基础能力,执行kubectl top pods -n default确认能返回业务Pod的CPU/内存指标
  3. 重新部署HPA,执行kubectl get hpa查看TARGET字段是否正常显示当前利用率/目标值,kubectl describe hpa bot-scaler确认无报错信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:54:07