k8s学习 踩坑之 top nodes - k8s Metrics not available for pod 报错

博客讲述了在K8S环境中配置metrics服务以实现动态扩容,但遇到kubectl top pod无法获取信息的问题。作者发现该问题是由于Docker版本为18导致的bug,升级Docker到19及以上版本可以解决此问题。当K8S部署metrics-service后,若topnodes正常而toppod报错,检查Docker版本可能是关键。
摘要由CSDN通过智能技术生成

最近一直在弄k8s,前面安装都要顺畅,包括K8S集群等等。

k8s有个很重要的功能,就是它可以根据你服务器的压力动态扩容pod。

比如你可以预定你的pod实例是5个,当请求高峰过来的时候,pod压力过大,每个pod的cpu或者内存一下增大

当pod的cpu超过一个阈值的时候,k8s可以根据你的设定将pod实例变成8个,10个,设置20个,

过段时间,当洪峰过去,cup压力下来后,pod实例又会慢慢的将个数变成10个,8个,最后3个。

这个就是K8S的所谓的动态伸缩

 

但是要弄这个功能,最主要的就是k8s的监控指标,也就是metrics服务,metrics服务就是负责搜集k8s中的

各个服务的性能指标的服务,动态扩容就是k8s根据metrics收集过来的pod的性能指标来进行动态扩容。

 

ok,上面就是我为什么要安装metrics。然后我上网百度,差不多都是一样(这个网上都有,我就不抄了,自己去百度)。

我的k8s环境是1.19,照着步骤一步一步,最后,metrics的服务也在云节点上也成功了。

成功后,我就去执行 kubectl top nodes和kubectl top pod。

结果kubectl top nodes能够正确获取k8s下节点的信息,kubectl top pod却获取不到pod实例的信息,

百度了几天,根本就找不到解决方法,最后,在世界最大同性交友平台上 github上找到了问题所在。

 

原来是我的docker版本是 18 版本的,对metrics模块有影响,是bug,你可以将docker升级到19或以上,要不等着k8s修复这个bug

 

这里我踩了个坑,当你的K8S部署了metrics-service之后,发现你的top nodes命令正常,top pod命令报k8s Metrics not available for pod的时候,

不管你怎么查看pod日志,什么证书都解决不了问题的时候,看看你的docker版本把,如果你的docker版本刚好是18.**.*的时候,你可以考虑升级一下你的docker版本了。

 

 

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值