Kubernetes监控之Heapster介绍
什么是Heapster?Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS。
Heapster是一个收集者,将每个Node上的cAdvisor的数据进行汇总,然后导到第三方工具(如InfluxDB)。 框架图: Heapster首先从K8S Master获取集群中所有Node的信息,然后通过这些Node上的kubelet获取有用数据,而kubelet本身的数据则是从cAdvisor得到。所有获取到的数据都被推到Heapster配置的后端存储中,并还支持数据的可视化。现在后端存储 + 可视化的方法,如InfluxDB + grafana。 Heapster使用这里主要介绍Heapster的API使用,及可获取的Metrics。 API文档及可用Metrics在官方文档中都介绍的比较齐全。下面用几条测试命令来解释API使用: # 获取cluster支持的metrics # curl -L http://<heapster-IP>:8082/api/v1/model/metrics # 列出Nodes支持的metrics # curl -L http://<heapster-IP>:8082/api/v1/model/nodes/metrics # 查看对应Pod的cpu使用率 # curl -L http://<heapster-IP>:8082/api/v1/model/namespaces/<namespace-name>/pods/<pod-name>/metrics/cpu-usage Heapster系统部署我们采用Heapster以InfluxDB作为数据存储后端,再配合Grafana的前端进行数据可视化的系统监控方案,进行部署。 镜像制作:Heapster的版本:v0.19.0
Heapster镜像: InfluxDB和Grafana镜像: 容器的运行Heapster容器的运行可以依赖Kubernetes进行部署,也可以单独使用docker命令进行部署。 Kubernetes部署:
Docker命令部署: InfluxDB: docker run -p 8083:8083 -p 8086:8086 --net=host -v /data heapster_influxdb:canary 注:data是数据存储目录,需要考虑数据可持久化,并且能保证容器重启不影响数据。 Grafana: docker run -p 3000:3000 --net=host -e INFLUXDB_SERVICE_URL=http://<InfluxDB-IP>:8086 -e GF_AUTH_BASIC_ENABLED="false" -e GF_AUTH_ANONYMOUS_ENABLED="true" -e GF_AUTH_ANONYMOUS_ORG_ROLE="Admin" -e GF_SERVER_ROOT_URL=/ -v /var heapster_grafana:canary Heapster: docker run -it -p 8082:8082 --net=host heapster:canary --source=kubernetes:http://<K8S-IP>:8080?inClusterConfig=false&;useServiceAccount=false --sink=influxdb:http://<InfluxDB-IP>:8086 Heapster命令参考相对较为重要,可以参考官方文档,具体如下: --source: 指定数据获取源。这里我们指定kube-apiserver即可。 --sink: 指定后端数据存储。这里指定influxdb数据库。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |