图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster 。
Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS ,并且支持多种存储后端,比如: InfluxDB 、 ElasticSearch 、 Kafka 。
下载源包和images文件
下载地址https://github.com/kubernetes/heapster/archive/v1.2.0.zip,将包copy到kubernetes master节点上去.
打开deploy/kube-config/influxdb目录看到5个部署文件
参看这几个 yaml文件,预先把需要pull的image在nodes节点上准备好
docker pull kubernetes/heapster:canary |
运行创建(master)
然后在master节点上运行
kubectl create -f deploy/kube-config/influxdb/ |
通过kube get pods -n kube-system发现heapster-zm85m没有运行起来,基于下面命令查看日志
kubectl logs -f pods/heapster-zm85m -n kube-system |
发现错误
编辑heapster-control.yaml文件,把其中source这行替换成本机的api server ip并添加?inClusterConfig=false
删除之前创建的pod重新create一遍.
spec:containers:- name: heapsterimage: kubernetes/heapster:canaryimagePullPolicy: Alwayscommand:- /heapster- --source=kubernetes:http://<api server ip>:<port>?inClusterConfig=false- --sink=influxdb:http://monitoring-influxdb:8086
最后的yaml文件:
[root@k8s-master influxdb]# cat heapster-controller.yaml apiVersion: v1 kind: ReplicationController metadata:labels:k8s-app: heapstername: heapsterversion: v6name: heapsternamespace: kube-system spec:replicas: 1selector:k8s-app: heapsterversion: v6template:metadata:labels:k8s-app: heapsterversion: v6spec:containers:- name: heapsterimage: kubernetes/heapster:canarycommand:- /heapster- --source=kubernetes:http://10.182.169.33:8080?inClusterConfig=false- --sink=influxdb:http://monitoring-influxdb:8086
# kubectl delete -f deploy/kube-config/influxdb/ # kubectl create -f deploy/kube-config/influxdb/ |
再次打开kubernetes dashboard,就可以看到获取的监控数据啦