EKS 1.24集群Metrics Server遇nodes.metrics.k8s.io不支持watch错误求助
问题排查:metrics-server 报 "watch is not supported on resources of kind 'nodes.metrics.k8s.io'"
问题详情
在EKS 1.24集群中部署了镜像为k8s.gcr.io/metrics-server/metrics-server:v0.6.2的metrics-server,系统追踪中频繁出现以下405错误:
{ "kind": "Status", "apiVersion": "v1", "metadata": {}, "status": "Failure", "message": "watch is not supported on resources of kind \"nodes.metrics.k8s.io\"", "reason": "MethodNotAllowed", "details": { "group": "metrics.k8s.io", "kind": "nodes" }, "code": 405 }
请求相关信息:
- 请求URL:
/apis/metrics.k8s.io/v1beta1/nodes - 发起身份:
system:serviceaccount:cattle-system:cattle
核心原因
metrics-server v0.6.x版本本身不支持对nodes.metrics.k8s.io资源的watch操作,它仅提供单次查询(GET)接口来获取节点指标。而Rancher的cattle组件(通过cattle-system:cattle服务账号)尝试对该资源发起watch请求,这与metrics-server的API能力不兼容,从而触发405 MethodNotAllowed错误。
解决方案
- 升级Rancher版本:旧版本Rancher可能存在未适配metrics-server API限制的逻辑,升级到最新稳定版通常会修复这类兼容性问题,避免发起不被支持的watch请求。
- 检查Rancher指标采集配置:查看Rancher中与节点指标采集相关的设置,确认是否有强制开启watch节点metrics的选项,若存在则关闭该配置,改用单次查询的方式获取指标。
- 验证metrics-server部署正确性:执行
kubectl get apiservice v1beta1.metrics.k8s.io检查APIService配置,确保没有自定义修改添加watch verbs——metrics-server的原生API定义里不包含watch,无需调整metrics-server本身。
内容的提问来源于stack exchange,提问作者Cloudlady911
相关产品推荐
相关产品推荐

