監控pod資源
cadvisor由谷歌開源,cadvisor不僅可以搜集一台機器上所有運行的容器信息,還提供基礎查詢界面和http接口,方便其他組件如Prometheus進行數據抓取,cAdvisor可以對節點機器上的資源及容器進行實時監控和性能數據采集,包括CPU使用情況、內存使用情況、網絡吞吐量及文件系統使用情況。
k8s 1.12之前cadvisor集成在node節點的上kubelet服務中,從1.12版本開始分離為兩個組件,因此需要在node節點單獨部署cadvisor。
https://github.com/google/cadvisor
cadvisor鏡像准備
1、cd /opt
2、docker load -i cadvisor_v0.36.0.tar.gz
3、docker tag gcr.io/google_containers/cadvisor:v0.36.0 harbor.linux.com/base/cadvisor:v0.36.0
4、docker push harbor.linux.com/base/cadvisor:v0.36.0
啟動cadvisor容器
1、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 \ #指定cadvisor的監聽端口
--detach=true \
--name=cadvisor \ #指定容器名稱
harbor.linux.com/base/cadvisor:v0.36.0
#容器的所有數據是存放在宿主機的 /var/lib/docker/ 目錄下,所以把宿主機的目錄映射到 cadvisor 容器中,讓 cadvisor 獲取其他容器的運行數據
2、每個node節點都需要運行此容器
prometheus采集node節點上所有pod的數據
1、vim /usr/local/prometheus/prometheus.yml
scrape_configs:
- job_name: 'kubernetes-k8s-pods' #采集指定node節點上所有pod的數據
static_configs:
- targets: ['192.168.3.144:8080','192.168.3.145:8080','192.168.3.146:8080']
2、systemctl restart prometheus.service
grafana添加監控pod的模板
導入官方的395、893模板即可
1、導入指定ID的模板

2、指定數據源為prometheus
