step1:

在官网下载部署文件

https://github.com/kubernetes-retired/heapster/tree/master/deploy/kube-config/influxdb

如果只部署heapster,只需要 kubectl apply -f heapster.yaml

出现如下错误:

E0312 09:39:32.275587       1 reflector.go:190] k8s.io/heapster/metrics/util/util.go:30: Failed to list *v1.Node: nodes is forbidden: User "system:serviceaccount:kube-system:heapster" cannot list resource "nodes" in API group "" at the cluster scope
E0312 09:39:32.276426 1 reflector.go:190] k8s.io/heapster/metrics/util/util.go:30: Failed to list *v1.Node: nodes is forbidden: User "system:serviceaccount:kube-system:heapster" cannot list resource "nodes" in API group "" at the cluster scope
I0312 09:39:32.282892 1 heapster.go:112] Starting heapster on port 8082
E0312 09:39:33.264051 1 reflector.go:190] k8s.io/heapster/metrics/util/util.go:30: Failed to list *v1.Node: nodes is forbidden: User "system:serviceaccount:kube-system:heapster" cannot list resource "nodes" in API group "" at the cluster scope
E0312 09:39:33.281099 1 reflector.go:190] k8s.io/heapster/metrics/heapster.go:328: Failed to list *v1.Pod: pods is forbidden: User "system:serviceaccount:kube-system:heapster" cannot list resource "pods" in API group "" at the cluster scope
E0312 09:39:33.281196 1 reflector.go:190] k8s.io/heapster/metrics/processors/namespace_based_enricher.go:89: Failed to list *v1.Namespace: namespaces is forbidden: User "system:serviceaccount:kube-system:heapster" cannot list resource "namespaces" in API group "" at the cluster scope

这里的错误显示是没有权限。所以在仓库里面找到文件 https://github.com/kubernetes-retired/heapster/tree/master/deploy/kube-config/rbac

创建 serviceaccount 权限, kubectl apply -f heapster-rbac.yaml

然后发现还是有如上错误。所以创建一个最高权限的账户,并修改heapster.yaml文件中的serviceaccount

step2:

创建 admin 账户

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: admin
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: admin
namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin
namespace: kube-system
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile

先撤掉原来部署的 kubectl delete -f heapster.yaml

修改:serviceAccountName: heapster  -> serviceAccountName: admin

再执行: kubectl appy -f heapster.yaml

使用命令查看状态,显示失败。

kubectl top node
error: metrics not available yet

再次查看日志

kubectl -n kube-system logs heapster-xxx -f

E0312 09:51:05.007570       1 manager.go:101] Error in scraping containers from kubelet:10.13.145.21:10255: failed to get all container stats from Kubelet URL "http://10.13.145.21:10255/stats/container/": Post http://10.13.145.21:10255/stats/container/: dial tcp 10.13.145.21:10255: getsockopt: connection refused
E0312 09:51:05.015293 1 manager.go:101] Error in scraping containers from kubelet:10.13.89.52:10255: failed to get all container stats from Kubelet URL "http://10.13.89.52:10255/stats/container/": Post http://10.13.89.52:10255/stats/container/: dial tcp 10.13.89.52:10255: getsockopt: connection refused
E0312 09:51:05.023599 1 manager.go:101] Error in scraping containers from kubelet:10.13.89.53:10255: failed to get all container stats from Kubelet URL "http://10.13.89.53:10255/stats/container/": Post http://10.13.89.53:10255/stats/container/: dial tcp 10.13.89.53:10255: getsockopt: connection refused
E0312 09:51:05.029772 1 manager.go:101] Error in scraping containers from kubelet:10.13.89.51:10255: failed to get all container stats from Kubelet URL "http://10.13.89.51:10255/stats/container/": Post http://10.13.89.51:10255/stats/container/: dial tcp 10.13.89.51:10255: getsockopt: connection refused
W0312 09:51:25.001639 1 manager.go:152] Failed to get all responses in time (got 0/4)  

还是出现错误。在查询之后发现访问链接有问题,解决方案如下

# heapster.yaml文件中的
- --source=kubernetes:https://kubernetes.default # 修改为
- --source=kubernetes:kubernetes:https://kubernetes.default?useServiceAccount=true&kubeletHttps=true&kubeletPort=10250&insecure=true

还是先 kubectl delete -f heapster.yaml

然后再创建 kubectl apply -f heapster.yaml

接着查看日志:

I0312 09:55:05.272254       1 influxdb.go:274] Created database "k8s" on influxDB server at "monitoring-influxdb.kube-system.svc:8086"

 

然后使用下面命令查看是否成功获取,显示结果表示获取成功

root@n1:~# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 347m 8% 2253Mi 58%
n1 34m 0% 909Mi 5%
n2 28m 0% 917Mi 5%
n3 28m 0% 870Mi 5%

  

最新文章

  1. cmder git bash 使用
  2. xheditor编辑器的使用
  3. Qt工程转化为Vs工程
  4. 【MySQL】数据导出导入成CSV格式
  5. JAVA开发CHECK STYLE
  6. MySQL的C++简单封装
  7. CentOS 7 部署、连接 数据库mariadb
  8. docker(一) Centos7下安装docker
  9. android:如何通过chrome远程调试APP中的webView的h5代码
  10. linux查看系统状态的命令
  11. redis系列--主从复制以及redis复制演进
  12. HTTP.ContentType
  13. 在Ubuntu的系统中怎样将应用程序加入到開始菜单中
  14. delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行。
  15. HttpSession javax.servlet.http.HttpServletRequest.getSession(boolean arg0)理解
  16. 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)
  17. .net 面试题总结
  18. mysql 开启远程连接
  19. chm下载地址收集
  20. Codeforces 189A. Cut Ribbon

热门文章

  1. drf路由与认证
  2. 使用Xshell的rz命令上传文件失败的解决方法
  3. 基于Three.js的全景---photo-sphere-viewer
  4. git的撤销、删除和版本回退
  5. 足球动图gif(二)
  6. noi-vim配置
  7. IDEA 2020版破解
  8. layui 魔改:富文本编辑器添加上传视频功能
  9. 使用Thanos实现Prometheus指标联邦
  10. 深入探究JVM之内存结构及字符串常量池