设为首页 收藏本站
查看: 1551|回复: 0

[经验分享] Kubernetes 1.5集成heapster

[复制链接]

尚未签到

发表于 2018-9-16 07:28:24 | 显示全部楼层 |阅读模式
  Heapster是kubernetes集群监控工具。在1.2的时候,kubernetes的监控需要在node节点上运行cAdvisor作为agent收集本机和容器的资源数据,包括cpu、内存、网络、文件系统等。在新版的kubernetes中,cAdvisor被集成到kubelet中。通过netstat可以查看到kubelet新开了一个4194的端口,这就是cAdvisor监听的端口,现在我们然后可以通过http://:4194的方式访问到cAdvisor。Heapster就是通过每个node上的kubelet,也就是实际的cAdvisor上收集数据并汇总,保存到后端存储中。
  Heapster支持多种后端存储,包括influxDB,Elasticsearch,Kafka等,在这篇文档里,我们使用influxDB作为后端存储来展示heapster的相关配置。需要说明的是,heapster依赖kubernetesdns配置。具体相关配置请参考另一篇博文《kubernetes 1.5配置dns》。
  1、下载heapster
  目前heapster的最新版本是1.2版本:
https:  上面的操作是下载heapster,然后将其中的influxdb目录复制到我们用于保存相关yaml文件的目录/data/kubernetes目录。其中influxdb目录中包含如下几个文件:

[root@server-116 influxdb]# ll -h  
total 20K-rw-r--r--. 1 root root  414 Mar 15 18:04 grafana-service.yaml-rw-r--r--. 1 root root  630 Mar 15 21:04 heapster-controller.yaml-rw-r--r--. 1 root root  249 Mar 15 18:04 heapster-service.yaml-rw-r--r--. 1 root root 1.5K Mar 15 18:17 influxdb-grafana-controller.yaml-rw-r--r--. 1 root root  259 Mar 15 18:04 influxdb-service.yaml

  我们需要修改相应几个controller文件中的image镜像的地址,还是一样,通过使用阿里云镜像地址dev.aliyun.com,修改完成以后,直接执行操作如下:
kubectl create -f /data/kubernetes/influxdb  这个时候,我们通过kubectl get pods --all-namespaces命令可以看到两个pod都正常启动,但我们通过dashboard却看不到相应的监控图。通过kubectl logs 查看heapster的容器日志。看到如下报错:
E0315 11:58:16.155096       1 reflector.go:205] k8s.io/heapster/metrics/heapster.go:232: Failed to list *api.Pod: Get https://kubernetes.default/api/v1/pods?resourceVersion=0: x509: certificate is valid for server-116, not kubernetes.defaultE0315 11:58:16.168369       1 reflector.go:205] k8s.io/heapster/metrics/processors/namespace_based_enricher.go:84: Failed to list *api.Namespace: Get https://kubernetes.default/api/v1/namespaces?resourceVersion=0: x509: certificate is valid for server-116, not kubernetes.default  从报错可以看出,是无法连接https://kubernetes.default这个地址。我们知道kubernetes.default其实就是apiserver本身,只不过这里是使用了kubernetes的域名系统进行解析。报错是因为连接了apiserver的secureport,需要ssl认证,导致了校验异常。为了规避这种校验,我们可以使用一种取巧的办法,就是使用非insecure-port连接,即apiserver的8080端口。
  我们找到heapster-controller.yaml文件,里面有关于其启动参数配置如下:
        command:        - /heapster        - --source=kubernetes:https://kubernetes.default  
        - --sink=influxdb:http://monitoring-influxdb:8086
  对两个参数做下简单说明:
  --source代表heapster的数据源,即从哪里获取数据,这里当然是从apiserver拿数据
  --sink代表heapster获取到的数据存储到哪里,我们这里使用了influxdb,influxdb的地址在influxdb相关的yaml文件中有定义,可以自行查看。
  我们要做的,就是修改--source的地址,改成如下配置:
--source=kubernetes:http://10.5.10.116:8080?inClusterConfig=false  其中10.5.10.116即apiserver地址,inClusterConfig=false代表不使用service accounts中的kube config信息。
  这样配置以后,我们重新运行heapster,再等一会生成数据,就可以看到如下界面了:

  参考:http://tonybai.com/2017/01/20/integrate-heapster-for-kubernetes-dashboard/



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-584291-1-1.html 上篇帖子: Kubernetes 1.5 配置dns 下篇帖子: Kubernetes 1.5部署sonarqube
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表