docker–cAdvisor(监控)实践
前言
- github地址:https://github.com/google/cadvisor
- cAdvisor 可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况
- cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控,kubelet的启动参数 –cadvisor-port 可以定义cAdvisor对外提供服务的端口,默认为4194
- cAdvisor原生支持 Docker 容器,cAdvisor 容器是基于Google的 Imctfy 开发
- cAdvisor 运行一个守护进程用来收集每一个容器的数据
运行容器
-
创建 start.sh,内容如下,
sudo 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 \ --publish=38080:8080 \ --detach=true \ --privileged=true \ --name=cadvisor \ google/cadvisor:v0.33.0
-
注意,在 Ret Hat, CentOS, Fedora 等发行版上需要传递如下参数,因为 SELinux 加强了安全策略.
--privileged=true
-
设置为true之后,容器内的root才拥有真正的root权限,否则容器内的root只是外部的一个普通用户权限
-
由于cadvisor需要通过socket访问docker守护进程,在Centos和RHEL系统中需要这个选项
--volume=/cgroup:/cgroup:ro
-
赋予start.sh可执行权限,然后运行
-
运行成功后即可访问 http://localhost:38080,界面如下
rest api
- cadvisor还提供了远程调用的api
- 详细文档:https://github.com/google/cadvisor/blob/master/docs/api.md
参考
google/cadvisor - Docker Hub
https://hub.docker.com/r/google/cadvisor
google/cadvisor: Analyzes resource usage and performance characteristics of running containers.
https://github.com/google/cadvisor
Kubernetes–学习笔记-6 – CAdvisor的使用 - Harris的博客 - CSDN博客
https://blog.csdn.net/harris135/article/details/79234691