架构和组件
组件功能
- cAdvisor:容器数据收集。
- Heapster:集群监控数据收集,汇总所有节点监控数据。
- InfluxDB:时序数据库,存储监控数据。
- Grafana:可视化展示。
架构图
工作流程
cAdvisor负责收集节点的状态信息,然后Heapster会通过kubelet向每一个节点请求cAdvisor收集的信息,并将信息存储在InfluxDB中,Grafana通过InfluxDB中的信息进行前端的展示。
部署
cAdvisor
cAdvisor默认是安装的,可以通过浏览器访问节点的4194端口进行测试。
cAdvisor会收集当前节点的信息和容器的信息,主要会收集网络和磁盘IO,文件系统大小、内存使用情况等。
但是,cAdvisor只会收集实时的数据,并不会做持久化存储
InfluxDB
# cat influxdb.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: monitoring-influxdb
namespace: kube-system
spec:
replicas: 1
template:
metadata:
labels:
task: monitoring
k8s-app: influxdb
spec:
containers:
- name: influxdb
image: registry.cn-hangzhou.aliyuncs.com/google-containers/heapster-influxdb-amd64:v1.1.1
volumeMounts:
- mountPath: /data
name: influxdb-storage
volumes:
- name: influxdb-storage
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
labels:
task: monitoring
# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
#