在 Ubuntu 22.04 上运行 cAdvisor 时遇到 mountpoint for cpu not found 错误

通常是由于 cgroup v2 导致的兼容性问题。Ubuntu 22.04 默认使用 cgroup v2,而旧版本的 cAdvisor 可能不完全支持它。以下是解决方案:

方法 1:启用 cgroup v1(推荐)

临时切换回 cgroup v1(cAdvisor 兼容性更好):

1、编辑 GRUB 配置:

sudo vi /etc/default/grub

2、找到 GRUB_CMDLINE_LINUX,并添加:

systemd.unified_cgroup_hierarchy=0

例如:

GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0"

3、更新 GRUB 并重启:

sudo update-grub

sudo reboot

4、重启后,检查是否已切换回 cgroup v1

stat -fc %T /sys/fs/cgroup/

  • 如果返回 tmpfscgroupcgroup v1(成功)

  • 如果返回 cgroup2fscgroup v2(未生效)

5、重新运行 cAdvisor:

docker run \

--volume=/:/rootfs:ro \

--volume=/var/run:/var/run:ro \

--volume=/sys:/sys:ro \

--volume=/var/lib/docker/:/var/lib/docker:ro \

--volume=/dev/disk/:/dev/disk:ro \

--volume=/sys/fs/cgroup:/sys/fs/cgroup:ro \

--publish=18080:8080 \

--detach=true \

--name=cadvisor \

--privileged \

--device=/dev/kmsg \

google/cadvisor:latest

方法 2:使用支持 cgroup v2 的 cAdvisor 版本

如果不想切换回 cgroup v1,可以尝试较新版本的 cAdvisor(如 v0.47.0+):

docker run \

--volume=/:/rootfs:ro \

--volume=/var/run:/var/run:ro \

--volume=/sys:/sys:ro \

--volume=/var/lib/docker/:/var/lib/docker:ro \

--volume=/dev/disk/:/dev/disk:ro \

--volume=/sys/fs/cgroup:/sys/fs/cgroup:ro \

--publish=18080:8080 \

--detach=true \

--name=cadvisor \

--privileged \

--device=/dev/kmsg \

gcr.io/cadvisor/cadvisor:v0.47.0

验证 cAdvisor 是否运行成功

docker logs cadvisor

如果成功,访问 http://<your-server-ip>:18080 应该能看到 cAdvisor 的监控界面。

相关推荐
海阔天空任鸟飞~2 小时前
Linux 权限 777
linux·运维·服务器
IT瑞先生4 小时前
docker-compose下快速部署实操——持续更新...
运维·docker·容器
无锡银洲自动化4 小时前
工业模拟量采集痛点分析:IDCB-4E/DR/Y测量前端解决方案
运维·产品运营
Kina_C5 小时前
Linux iptables 防火墙原理与实操——从四表五链到 NAT 配置
linux·运维·服务器·iptables
A洛6 小时前
Codex 实战:一句话完成 Temu 商品图采集与印花抠图自动化
运维·人工智能·自动化·codex
wdfk_prog6 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
Urbano6 小时前
服装工厂卫衣量产提质增效方案:工序自动化替代、产能优化、多品牌设备选型及落地案例
运维·自动化
GlobalSign数字证书6 小时前
自动化时代,如何高效部署SSL证书?
运维·自动化·ssl
大侠锅锅9 小时前
第 19 篇:远程运维体系——指标、SSH、日志与 OTA 升级
运维·ssh
TARDIS_202010 小时前
VMware配置ubuntu26.04虚拟机桥接
ubuntu