Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Kubernetes监控之Heapster介绍大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

什么是Heapster?

Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS。
Kubernetes有个出名的监控agent---cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptimE)
在较新的版本中,K8S已经将cAdvisor功能集成到kubelet组件中。每个Node节点可以直接进行web访问。

Heapster是一个收集者,将每个Node上的cAdvisor的数据进行汇总,然后导到第三方工具(如InfluxDB)。

框架图:

Heapster首先从K8S Master获取集群中所有Node的信息,然后通过这些Node上的kubelet获取有用数据,而kubelet本身的数据则是从cAdvisor得到。所有获取到的数据都被推到Heapster配置的后端存储中,并还支持数据的可视化。现在后端存储 + 可视化的@L_696_11@,如InfluxDB + grafana。

Heapster使用

这里主要介绍Heapster的API使用,及可获取的Metrics。
资料:
api文档https://github.com/kubernetes...@H_797_3@metrics: https://github.com/kubernetes...

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镜像:
进入heapster-0.19.0//deploy/docker,使用build.sh进行镜像制作。 该脚本会依赖go环境进行heapster源码编译,所以需要提前安装go环境(go和godep的安装)。

InfluxDB和Grafana镜像:
这两个镜像的Dockerfile分别在根目录下的对应文件中,只需查看Makefile进行对应的命令编译制作镜像即可。Dockerfile会依赖一些基础镜像,最好提前下载好。

容器的运行

Heapster容器的运行可以依赖Kubernetes进行部署,也可以单独使用docker命令进行部署。

Kubernetes部署:
直接依赖heapster-0.19.0/deploy/kube-config/influxdb/目录下的yaml文件
使用kubectl create -f heapster-0.19.0/deploy/kube-config/influxdb/命令进行部署。

Docker命令部署:
使用docker命令进行部署的话,需要传入各种参数,该参数可以参kubernetes部署使用到的yaml文件
具体命令如下:

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即可。
后缀参数:
inClusterConfig:
kubeletPort: 指定kubelet的使用端口,认10255
kubelethttps: 是否使用https去连接kubelets(认:falsE)
apiVersion: 指定K8S的apiversion
insecure: 是否使用安全证书(认:falsE)
auth: 安全认证
useserviceAccount: 是否使用K8S的安全令牌

--sink: 指定后端数据存储。这里指定influxdb数据库
后缀参数:
user: InfluxDB用户
pw: InfluxDB密码
db: 数据库
secure: 安全连接到InfluxDB(认:falsE)
withfields: 使用InfluxDB fields(认:falsE)可以参Here

大佬总结

以上是大佬教程为你收集整理的Kubernetes监控之Heapster介绍全部内容,希望文章能够帮你解决Kubernetes监控之Heapster介绍所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。