Kubernetes集群监控方案详解(5)

# cat grafana-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: kube-system
  labels:
    app: grafana
    component: core
spec:
  type: NodePort
  ports:
    - port: 3000
  selector:
    app: grafana
component: core

3、grafana ingress配置文件
# cat grafana-ing.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: grafana
  namespace: kube-system
spec:
  rules:
  - host: k8s.grafana
    http:
      paths:
      - path: /
        backend:
          serviceName: grafana
          servicePort: 3000

通过访问traefik的webui可以看到k8s.grafana服务发布成功

Kubernetes集群监控方案


修改hosts解析,访问测试

Kubernetes集群监控方案


Kubernetes集群监控方案


也可以直接访问nodeport端口

Kubernetes集群监控方案


默认用户名和密码都是admin

Kubernetes集群监控方案


配置数据源为prometheus

Kubernetes集群监控方案


导入面板,可以直接输入模板编号315在线导入,或者下载好对应的json模板文件本地导入,面板模板下载地址https://grafana.com/dashboards/315

Kubernetes集群监控方案


导入面板之后就可以看到对应的监控数据了。

Kubernetes集群监控方案


Kubernetes集群监控方案


Kubernetes集群监控方案


这里要说明一下,在测试过程中,导入编号为162的模板,发现只有部分数据,且pod的名称显示不友好。模板地址https://grafana.com/dashboards/162,详见下图。

Kubernetes集群监控方案

六、后记
这里存在一些问题后续要继续研究解决。
1、prometheus的数据存储采用emptydir。如果Pod被删除,或者Pod发生迁移,emptyDir也会被删除,并且永久丢失。后续可以在K8S集群外部再配置一个Prometheus系统来永久保存监控数据, 两个prometheus系统之间通过配置job自动进行数据拉取。
2、Grafana的配置数据存储采用emptydir。如果Pod被删除,或者Pod发生迁移,emptyDir也会被删除,并且永久丢失。我们也可以选择将grafana配置在k8s外部,数据源选择K8S集群外部的prometheus即可。
3、关于监控项的报警(alertmanager)尚未配置。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/20fa8e70aa706e8bb17ee452ee486da8.html