原始kubernetes dashboard
的界面中仅显示了pod
一些配置信息,无法图形化展现集群度量指标信息。原始图如下(此处从网上找了一个图..):
而如果要展示图形化的集群度量指标信息,就需要安装一个dashboard
插件:heapster
。
Heapster
原生支持K8s(v1.0.6及以后版本)
和CoreOS
,并且支持多种存储后端,比如:InfluxDB
、ElasticSearch
、Kafka
等,这个风格和k8s
的确很像:功能先不管完善与否,先让自己在各个平台能用起来再说。这里我们使用的数据存储后端是InfluxDB
。
kubernetes
安装是十分必要的,否则一切都没有意义了。安装kubernetes
的文档可查看这篇文章: Kubernetes1.8.3 集群环境搭建(CentOS)。此处讲的Heapster
安装配置也是基于这篇kubernetes
之上的。
kubernetes dashboard
安装配置文档可看这篇文章:Kubernetes dashboard1.8.0 WebUI安装与配置。
此处安装Heapster
需要三个镜像,下面给出了三个镜像的下载地址,建议保存到本地私有库,然后替换yaml
文件中的镜像下载地址。
kubernetes/heapster:canary
kubernetes/heapster_influxdb:v0.5 signalive/heapster_grafana:2.6.0-2
我们的Heapster也是要放在pod里运行的。当前,Heapster的最新stable版本是v1.2.0,源码包下载地址:heapster v1.2.0。将源码包下载到某个Node上,解压后,我们得到一个名为”heapster-1.2.0″的目录,进入该目录,我们可以看到如下内容:
以InfluxDB
为存储后端的Heapster
部署yaml
在deploy/kube-config/influxdb
下面:
[root@mimo222 heapster]# cd deploy/kube-config/influxdb
[root@mimo222 influxdb]# ll
total 20
-rw-r--r-- 1 root root 414 Sep 14 2016 grafana-service.yaml
-rw-r--r-- 1 root root 840 Dec 20 13:52 heapster-controller.yaml
-rw-r--r-- 1 root root 249 Sep 14 2016 heapster-service.yaml
-rw-r--r-- 1 root root 1515 Dec 20 13:35 influxdb-grafana-controller.yaml
-rw-r--r-- 1 root root 259 Sep 14 2016 influxdb-service.yaml
这里有五个yaml
(注意:与heapster
源码库中最新的代码已经有所不同,最新代码将influxdb
和grafana
从influxdb-grafana-controller.yaml
拆分开了)。
heapster-controller.yaml
文件中包含一个image
镜像,可提前打开配置文件检查镜像是否能够正常下载,若不能,则替换为 kubernetes/heapster:canary
。
influxdb-grafana-controller.yaml
文件中包含两个image
镜像,可提前检查是否能正常下载,如不能,则分别替换为:kubernetes/heapster_influxdb:v0.5
、signalive/heapster_grafana:2.6.0-2
(替换gcr.io/google_containers/heapster_grafana:v2.6.0-2
)。
打开heapster-controller.yaml
配置文件,修改原文件指定部分为下面的配置:
containers:
- name: heapster image: 10.0.11.222:5000/bigdata/kubernetes/heapster:canary
volumeMounts:
- mountPath: /root/.kube name: config
imagePullPolicy: Always
command:
- /heapster - --source=kubernetes:https://kubernetes.default?inClusterConfig=false&insecure=true&auth=/root/.kube/config - --sink=influxdb:http://monitoring-influxdb:8086 volumes:
- name: config hostPath:
path: /root/.kube
1、将本地/root/.kube
目录与容器中该目录挂载,使用/root/.kube
目录下的config
文件(该文件可查看kubernetes1.8.0安装文档
中kubecofig证书
的生成过程)。
2、–source=kubernetes:https://kubernetes.default?inClusterConfig=false&insecure=true&auth=/root/.kube/config:修改原来–source为现在这个链接,用于连接apiserver
获取度量信息。
在influxdb
目录下(该目录下仅保存五个yaml
配置文件)执行下面命令:
[root@kube_master222 influxdb]# kubectl apply -f .
service "monitoring-grafana" created
replicationcontroller "heapster" created
service "heapster" created
replicationcontroller "influxdb-grafana" created
service "monitoring-influxdb" created
pod
下载镜像可能需要一小会时间,然后查看pod
状态:
[root@kube_master184 influxdb]# kubectl get pods --namespace="kube-system"
NAME READY STATUS RESTARTS AGE
heapster-trjrn 1/1 Running 0 29s
influxdb-grafana-nwh7h 2/2 Running 0 29s
kube-dns-57f885b8d5-l9fdv 3/3 Running 0 2h
kube-dns-57f885b8d5-nnfvt 3/3 Running 0 2h
kube-dns-autoscaler-6b4f6964b7-hb9kh 1/1 Running 0 2h
kubernetes-dashboard-5b8c57d69c-htwch 1/1 Running 0 42m
前两个为heapster
的pod
。
我安装Heapster主要参考了下面这篇文章,此处之所以再写一遍,主要是记录一些自己安装的配置,大家想要更细致的了解heapster的安装过程及可能出现的问题,建议查看这篇文章:Kubernetes Dashboard集成Heapster。