k8s学习 踩坑之 top nodes - k8s Metrics not available for pod 报错
最近一直在弄k8s,前面安装都要顺畅,包括K8S集群等等。k8s有个很重要的功能,就是它可以根据你服务器的压力动态扩容pod。比如你可以预定你的pod实例是5个,当请求高峰过来的时候,pod压力过大,每个pod的cpu或者内容一下增大当pod的cpu超过一个阈值的时候,k8s可以根据你的设定将pod实例变成8个,10个,设置20个,过段时间,当洪峰过去,cup压力下来后,pod实例又会慢慢的将个数
最近一直在弄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版本了。
更多推荐
所有评论(0)