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

AWS EKS Fargate因Metrics Server证书问题无法部署HPA求助

EKS Fargate环境下Metrics Server证书验证失败及kubectl top报错解决

问题现象

执行官方文档中的命令安装Metrics Server:

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

后出现以下问题:

  1. Metrics Server日志报证书验证错误:

E0124 20:06:19.813199 1 scraper.go:149] "Failed to scrape node" err="Get "https://10.0.138.91:10250/metrics/resource": tls: failed to verify certificate: x509: certificate is valid for 127.0.0.1, not 10.0.138.91" node="fargate-ip-10-0-138-91.ec2.internal"

  1. 执行kubectl top pods -A时返回服务不可用错误:

Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)

问题原因

EKS Fargate节点的kubelet证书仅将127.0.0.1设为证书的SAN(主题备用名称),而Metrics Server默认通过节点内部IP访问kubelet,导致证书域名与访问地址不匹配,触发验证失败。

解决步骤

  1. 编辑Metrics Server的Deployment配置:
kubectl edit deployment metrics-server -n kube-system
  1. 在容器的args字段中添加两个参数:
    • --kubelet-insecure-tls:跳过kubelet的TLS证书验证
    • --kubelet-preferred-address-types=InternalIP:指定优先使用内部IP访问kubelet
      修改后的配置片段示例:
    containers:
    - args:
      - --cert-dir=/tmp
      - --secure-port=4443
      - --kubelet-preferred-address-types=InternalIP
      - --kubelet-insecure-tls
      image: k8s.gcr.io/metrics-server/metrics-server:v0.6.4
      imagePullPolicy: IfNotPresent
      name: metrics-server
      ...
    
  2. 保存配置退出后,等待Metrics Server Pod自动重启。
  3. 验证修复效果:
    • 查看Metrics Server日志确认无证书错误:
      kubectl logs -n kube-system deployment/metrics-server
      
    • 执行kubectl top pods -A测试,正常情况下会返回各Pod的资源使用数据。

内容的提问来源于stack exchange,提问作者Desh Deepak Dhobi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:18:32