概述
报错
前几天测试环境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异常报错疑似原因处理方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复