k8s笔记21--prometheus 监控 nginx ingress
1 介绍2 安装测试2.1 配置环境2.2 测试k8s 1.23.63 注意事项4 说明1 介绍nginx ingress controller 是 k8s 集群中最常用的 ingress controller 之一, 它可以根据 ingress 为集群中的应用配置负载均衡,从而使外部网络通过域名访问集群内的应用。实际项目中,除了使用 ingress 外,我们也需要监控 ingress 和 ing
1 介绍
nginx ingress controller 是 k8s 集群中最常用的 ingress controller 之一, 它可以根据 ingress 为集群中的应用配置负载均衡,从而使外部网络通过域名访问集群内的应用。
实际项目中,除了使用 ingress 外,我们也需要监控 ingress 和 ingress controller 的相关信息,从而了解集群内服务和网络的可用性。
本文基于 nginx ingress controller 一步步讲述如何通过 prometheus监控 nginx ingress, 并使用 grafana 展示监控信息。
2 安装测试
前置条件,可以参考 k8s笔记12–grafana的配置和常见使用 安装 grafana, 参考 k8s笔记18–快速入门ingress和ingress controller 安装 ingress controller。
2.1 配置环境
- 在 Prometheus 的 job_name: kubernetes-service-endpoints 中新增命名空间 ingress-nginx, 如下所示
- job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints follow_redirects: true namespaces: names: - lens-metrics - ingress-nginx
- 在ingress 的 deployment 新增 metrics 端口,在 ingress 的 svc 中新增注解相关的字段,如下所示
新增配置后,Prometheus 中即可看到对应 10254/metrics, 如下图所示# svc.yaml info metadata: annotations: prometheus.io/port: '10254' prometheus.io/scrape: 'true' status: loadBalancer: {} spec: ports: - name: prometheus protocol: TCP port: 10254 targetPort: prometheus # deploy.yaml info spec: template: spec: containers: - name: controller ports: - name: prometheus containerPort: 10254 protocol: TCP
- 在 grafana 中导入 github.com/kubernetes/ingress-nginx/tree/main/deploy/grafana/dashboards 中的json文件
2.2 测试k8s 1.23.6
ingress controller v1.2.0
配置完成并导入数据后,过一段时间就可以在 grafana 上查看 ingress 相关的数据,如下图所示:
ingress controller
Request Handing Performance
3 注意事项
该文档中端口和实际不匹配,
https://docs.nginx.com/nginx-ingress-controller/logging-and-monitoring/prometheus/
ingress-nginx 官方文档 docs.nginx.com/nginx-ingress-controller/logging-and-monitoring/prometheus/ 中也介绍了nginx-ingress-controller 的日志监控方法, 但是文档中端口和实际不匹配,因此最好参考 github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/monitoring.md 来配置。
4 说明
软件环境:
grafana 8.5.2
k8s 1.23.6
ingress controller v1.2.0
参考文档:
k8s笔记12–grafana的配置和常见使用
k8s笔记18–快速入门ingress和ingress controller
github.com/kubernetes/ingress-nginx/tree/main/deploy/grafana/dashboards
github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/monitoring.md
基于k8s集群部署prometheus监控ingress nginx
更多推荐
所有评论(0)