k8s-kubelet源码修改BUG

608人浏览 / 0人评论

一、背景说明

线上kubelet异常自动重启进程,报错日志:kubelet: panic: runtime error: index out of range

影响范围:无影响,只是会有Not Ready报警

github问题地址:https://github.com/kubernetes/kubernetes/issues/66366

github解决问题地址:https://github.com/google/cadvisor/pull/2004

 

二、问题主要原因

kubelet自身提供的监控信息 是通过 origin-3.11-cadvisor-v0.30.1 组件来完成的,在 cadvisor v0.30.1版本中出现了一个问题,导致了致命的错误。在取变量的时候 没有判断变量是否为空。

在k8s 1.10版本还是使用的是 cadvisor-v0.29.1,但是在k8s 1.10版本中去除了 cadvisor,不在融合在一起运行。

在官网1.10版本中,此版本中升级了cadvisor到CAdvisor is v0.29.1

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.9.md

kubelet 默认在端口 4194 上运行的以前公开可用的 cAdvisor Web UI 现在默认关闭。配置在哪个端口上运行此 UI 的标志--cadvisor-port在 v1.10 中已弃用。现在的默认设置是--cadvisor-port=0,换句话说,不运行 Web 服务器。如果您仍需要运行 cAdvisor,推荐的运行方式是通过 DaemonSet。请注意,--cadvisor-port将在 v1.12 中删除

 

三、源码编译

https://www.liangzeyu.com/article/451.html

全部评论