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

在Amazon EKS中安装metrics-server遇部署无效问题求助

解决Amazon EKS 1.24中Metrics Server部署失败的问题

问题场景

在版本1.24的Amazon EKS集群中,使用kubectl 1.25执行官方命令安装Metrics Server时失败:

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

返回核心错误:

The Deployment "metrics-server" is invalid: spec.template.spec.containers[0].ports[1].name: Duplicate value: "https"

同时执行k top nodes命令时返回服务不可用:

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

原因分析

通过curl获取官方YAML文件时,输出中混入了* TLSv1.2 (IN), TLS header, Supplemental data (23):这类无关的TLS日志内容,导致YAML结构被破坏,解析时出现端口名称重复的错误。

解决步骤

1. 清理已创建的无效资源

先移除之前部署的不完整资源:

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

如果上述命令执行失败,可手动删除相关资源:

kubectl delete sa metrics-server -n kube-system
kubectl delete clusterrole system:aggregated-metrics-reader system:metrics-server
kubectl delete rolebinding metrics-server-auth-reader -n kube-system
kubectl delete clusterrolebinding metrics-server:system:auth-delegator system:metrics-server
kubectl delete svc metrics-server -n kube-system
kubectl delete deployment metrics-server -n kube-system
kubectl delete apiservice v1beta1.metrics.k8s.io

2. 下载完整的YAML配置文件

使用-s参数屏蔽curl的冗余输出,确保下载的YAML文件纯净:

curl -sL https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml > metrics-server-components.yaml

打开文件检查,确认没有TLS相关的干扰文本,YAML结构完整。

3. 适配EKS环境调整配置(关键步骤)

EKS集群的kubelet使用自签名证书,需要给Metrics Server添加跳过证书验证的参数。编辑metrics-server-components.yaml,在metrics-server容器的args列表中添加--kubelet-insecure-tls:

containers:
- args:
  - --cert-dir=/tmp
  - --secure-port=4443
  - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
  - --kubelet-use-node-status-port
  - --metric-resolution=15s
  - --kubelet-insecure-tls  # 添加该行
  image: k8s.gcr.io/metrics-server/metrics-server:v0.6.2

4. 重新部署Metrics Server

kubectl apply -f metrics-server-components.yaml

5. 验证部署结果

等待Pod启动完成后,执行以下命令确认状态:

# 检查Metrics Server Pod是否正常运行
kubectl get pods -n kube-system | grep metrics-server

# 验证节点指标是否可获取
kubectl top nodes

内容的提问来源于stack exchange,提问作者david.perez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:12:08