我是靠谱客的博主 陶醉自行车,最近开发中收集的这篇文章主要介绍记一次Metrics-server异常报错疑似原因处理方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

报错



前几天测试环境k8s集群做etcd的备份恢复。
所有的pod都起来了,包括metrics-server的状态也是
Running,部署新pod也没有异常,结果kubectl top 请求的时候报错了
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)



疑似原因



疑似原因:
metrics-server异常,pod没有起来
apiserver异常



处理方法



<1>查看pod状态

kubectl get pod -A  -o wide
kubectl describe pod metrics-server-7c777d79fd-hvv44 -n kube-system


实际上我这一步,查看所有的pod的状态都是正常的(包括kube-proxy cordns等)
问题也不在某些pod没起来



<2>查看apiserver

kubectl logs kube-apiserver-master1 -n kube-system

在这里插入图片描述

kubectl describe apiservice v1beta1.metrics.k8s.io

在这里插入图片描述

从上面的日志中,访问api超时,疑似网络问题
available_controller.go:524] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.109.87.31:443/apis/metrics.k8s.io/v1beta1: Get “https://10.109.87.31:443/apis/metrics.k8s.io/v1beta1”: dial tcp 10.109.87.31:443: i/o timeout
loading OpenAPI spec for “v1beta1.metrics.k8s.io” failed with: Error, could not get list of group versions for APIService

curl https://10.109.87.31:443/apis/metrics.k8s.io/v1beta1
访问链接仍是超时


<3>

vim /etc/kubernetes/manifests/kube-apiserver.yaml
按照红框中的内容修改,没有的内容就添加上

在这里插入图片描述

enable-aggregator-routing
master节点上没有kube-proxy时,需要设定为true
在这里插入图片描述

从网上找的文档也是加了这个参数后好了,从原文来看是和kube-proxy有关
从报错来看是apiserver找不到metrics-server了,可能是master和pod的网络或者说路由出现了问题,有人提出了把metrics-server修改成NodePort,这样原则上来说可以的,我们以前也通常是直接使用NodePort来暴露服务,因为这样很方便,但是不得不做个excel把每个项目对应端口进行记录并在以后的开发中规划端口,避免冲突

ps:
虽然问题解决了,但是仍有些问题的具体原因并不清楚
为什么会出现一开始安装没有问题,只有重启k8s集群后才出现
为什么新部署别的服务都没有问题,只有metrics-server出现问题
还是k8s重启的少,没有暴露问题,因为基本上服务起来了,很少有人主动去挂掉服务去做测试

最后

以上就是陶醉自行车为你收集整理的记一次Metrics-server异常报错疑似原因处理方法的全部内容,希望文章能够帮你解决记一次Metrics-server异常报错疑似原因处理方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部