如何判断Kubernetes集群中cAdvisor是否安装运行、版本及来源
判断Kubernetes集群中cAdvisor状态、版本及来源的方法
先明确:cAdvisor确实是Kubelet的内置组件,默认随Kubelet启动运行,无需单独安装。以下分场景给出判断方法:
一、确认cAdvisor是否运行
针对内置cAdvisor(绝大多数场景)
- 检查Kubelet启动参数:执行
ps aux | grep kubelet,若未找到--disable-cadvisor=true参数,说明cAdvisor默认启用;若有该参数则已禁用。 - 验证Metrics指标:访问Kubelet的Metrics端口(默认10250),执行
curl http://<节点IP>:10250/metrics,搜索是否存在container_cpu_usage_seconds_total、container_memory_usage_bytes等cAdvisor生成的容器监控指标,存在则说明运行正常。 - 查看Kubelet日志:执行
journalctl -u kubelet,搜索关键词cadvisor,若出现类似Starting cAdvisor的日志,证明cAdvisor已成功启动。
针对单独部署的cAdvisor(极少场景)
执行kubectl get pods -n kube-system,查找名称包含cadvisor的Pod,查看其状态是否为Running。
二、确认cAdvisor版本
针对内置cAdvisor
- Kubelet版本与内置cAdvisor版本强绑定,执行
kubelet --version获取Kubelet版本后,可通过Kubernetes官方发布说明或对应分支源码,查询该版本Kubelet内置的cAdvisor具体版本。 - 直接从Kubelet二进制提取:执行
strings $(which kubelet) | grep cadvisor,部分版本会直接输出cAdvisor的版本信息。 - 查看Metrics指标:部分版本的Kubelet会暴露
cadvisor_version_info指标,执行curl http://<节点IP>:10250/metrics | grep cadvisor_version_info即可获取版本。
针对单独部署的cAdvisor
执行kubectl describe pod <cadvisor-pod-name> -n kube-system,查看Pod使用的镜像名称,镜像标签通常即为cAdvisor版本(如google/cadvisor:v0.47.0)。
三、确认cAdvisor来源
针对内置cAdvisor
内置cAdvisor是Kubernetes项目在构建Kubelet时,引入Google官方的cAdvisor源码编译而来,来源为Google官方的cAdvisor项目,版本由Kubernetes官方指定并与Kubelet版本匹配。
针对单独部署的cAdvisor
来源即为Pod所使用镜像的构建源,通常是Google官方的cAdvisor镜像仓库;若为自定义镜像,则需查看镜像的构建配置确认来源。
内容的提问来源于stack exchange,提问作者Joseph Gagnon
相关产品推荐
相关产品推荐

