简介
在kubernetes的监控方案中,Heapster+Influxdb+Grafana的组合相比prometheus等开源方案而言更为简单直接。而且Heapster在kubernetes中承担的责任远不止监控数据的采集,还包括控制台的监控接口、HPA的POD弹性伸缩等都依赖于Heapster的功能。因此Heapster成为了kubernetes中一个必不可少的组件,在阿里云的kubernetes集群中已经内置了Heapster+Influxdb的组合,如果需要将监控的数据进行展示,只需要配置一个可用的Grafana与相应的Dashboard即可。
操作步骤
首先我们登陆控制台,部署Grafana与Grafana的Service:
选择namespace为kube-system,并在编辑框内填入模板内容
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: monitoring-grafana
namespace: kube-system
spec:
replicas: 1
template:
metadata:
labels:
task: monitoring
k8s-app: grafana
spec:
containers:
- name: grafana
image: registry.cn-hangzhou.aliyuncs.com/acs/grafana:5.0.4
ports:
- containerPort: 3000
protocol: TCP
volumeMounts:
- mountPath: /var
name: grafana-storage
env:
- name: INFLUXDB_HOST
value: monitoring-influxdb
volumes:
- name: grafana-storage
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: monitoring-grafana
namespace: kube-system
spec:
ports:
- port: 80
targetPort: 3000
type: LoadBalancer
selector:
k8s-app: grafana
点击确认
即可进行部署。
当部署详情中Pod已经处于Running的状态时,查看访问的服务端点。
这个地址是通过LoadBalancer的Service自动创建的,对于需要更安全的开发者而言可以考虑添加ip白名单或者使用配置证书等方式增强。
访问服务端点,默认的Grafana的用户名和密码都是admin
,建议在部署后先修改为更复杂的密码。
在这个版本的Grafana中我们已经内置了两个模板,一个负责展示节点级别的物理资源,一个负责展示Pod相关的资源。开发者也可以通过添加自定义的Dashboard的方式进行更复杂的展现,也可以基于Grafana进行资源的告警等等。