参考文档
- https://akomljen.com/get-kubernetes-cluster-metrics-with-prometheus-in-5-minutes/
- https://github.com/kubernetes/ingress-nginx/tree/f56e839134fd4a1d020c3e95d4fe89496225041c/deploy/grafana/dashboards
- https://github.com/kubernetes/ingress-nginx/tree/f56e839134fd4a1d020c3e95d4fe89496225041c/deploy/monitoring
部署 monitoring
在 ingress-nginx 官网 deploy/monitoring 目录下载相关 YAML 文件
[root@elasticsearch01 monitoring]# pwd /k8s/YAML/ingress-nginx/monitoring [root@elasticsearch01 monitoring]# ls configuration.YAML grafana.YAML prometheus.YAML
使用 kubectl 部署 prometheus 和 grafana 容器 pod
[root@elasticsearch01 monitoring]# kubectl create -f ./ configmap/prometheus-configuration created deployment.extensions/grafana created service/grafana created role.rbac.authorization.k8s.io/prometheus-server created serviceaccount/prometheus-server created rolebinding.rbac.authorization.k8s.io/prometheus-server created deployment.apps/prometheus-server created service/prometheus-server created
查看对外暴露端口, 服务以 NoderPort 方式对外提供服务
prometheus 访问地址为: http://10.2.8.65:37941
grafana 访问地址为: http://10.2.8.34:32358
以上服务也可以部署 ingress 服务, 通过域名访问
[root@elasticsearch01 monitoring]# kubectl get pods,svc -n ingress-nginx -o wide|egrep "grafana|prome" pod/grafana-69549786b6-69sqm 1/1 Running 0 14m 10.254.73.6 10.2.8.34 <none> <none> pod/prometheus-server-8658d8cdbb-8kf2g 1/1 Running 0 14m 10.254.35.7 10.2.8.65 <none> <none> service/grafana NodePort 10.254.108.105 <none> 3000:32358/TCP 14m App.kubernetes.io/name=grafana,App.kubernetes.io/part-of=ingress-nginx service/prometheus-server NodePort 10.254.155.29 <none> 9090:37941/TCP 14m App.kubernetes.io/name=prometheus,App.kubernetes.io/part-of=ingress-nginx
配置 grafana
在 ingress-nginx 官网 deploy/grafana/dashboards 目录下载相关 nginx.JSON 文件
配置 prometheus 数据源
导入 dashboard
最终展示效果如下
来源: http://www.jianshu.com/p/ed97007604d7