基础学习
cAdvisor由谷歌开源,cAdvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和Http接口,方便其他组件如Prometheus进行数据抓取,cAdvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况,内存使用情况,网络吞吐量及文件系统使用情况
节点部署情况
系统 | IP | 服务 |
---|---|---|
Ubuntu22.04 | 192.168.202.221 | Prometheus, grafana, blackbox exporter, node exporter ,k8s master |
Ubuntu22.04 | 192.168.202.222 | node exporter , k8s worker |
Ubuntu22.04 | 192.168.202.223 | node exporter, k8s worker |
Ubuntu22.04 | 192.168.202.224 | node exporter , k8s worker |
项目地址
部署cAdvisor
下载
由于advisor的镜像在gcr.io仓库里,因此本人在docker hub推了一个最新的版本 postkarte/cadvisor:latest
运行容器
在所有k8s相关的节点上都运行容器
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=8080:8080 \
--detach=true \
--name=cadvisor \
--privileged \
--device=/dev/kmsg \
postkarte/cadvisor:latest
查看运行结果
sh
root@node1:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8695ddf2c9bb postkarte/cadvisor:latest "/usr/bin/cadvisor -..." 6 seconds ago Up 5 seconds (health: starting) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cadvisor
在Prometheus中添加cAdvisor
在Prometheus中配置一个job,添加容器的监控
yaml
- job_name: "k8s-containers"
static_configs:
- targets: ["192.168.202.221:8080","192.168.202.222:8080","192.168.202.223:8080","192.168.202.224:8080"]
检查配置文件是否正确
sh
root@node1:/usr/local/prometheus# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
重启Prometheus
sh
systemctl restart prometheus
可以看到k8s采集到数据了
在Grafana中导入模板展示数据
导入id为315的dashboard