Ops实践 | 企业云原生之Ingress-Nginx资源监控与可视化仪表盘
通过前面的专栏【#云原生落地使用指南】学习,相信各位看友已经掌握了Windows/Linux服务器、K8S集群、网站服务的监控预警,此章作者继续完成K8S集群中Ingress-nginx服务的快速安装到监控指标的暴露拉取,最后同样使用Grafana进行可视化的展示。通过 Grafana Dashboard 你可以查看到各 ingress controller 主机服务、网络IO、请求QPS等等,
微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~
关注回复【付费此专栏】加入【SecDevOps】学习答疑群交流群!
原文连接:
0x01 K8S组件指标采集展示
Ingress-nginx 服务监控指标拉取及可视化展示
前言简述:
描述:通过前面的专栏【#云原生落地使用指南】学习,相信各位看友已经掌握了Windows/Linux服务器、K8S集群、网站服务的监控预警,此章作者继续完成K8S集群中Ingress-nginx
服务的快速安装到监控指标的暴露拉取,最后同样使用Grafana进行可视化的展示。
通过 Grafana Dashboard 你可以查看到各 ingress controller 主机服务、网络IO、请求QPS等等,以及创建的 ingress 入口URL、证书等情况,当然你也可以根据模板目标自行调整修改,作者后续也会在此专栏中将实践调整所监控可视化的模板。
此文实践拉取、展示效果如下图所示:
图1.NGINX Ingress controller 监控指标采集图
图2.NGINX Ingress controller Dashboard 可视化展示
最后希望大家能多支持此专栏,作者耗费了大量时间进行归纳总结,若付费此专栏的朋友需要所需资源清单,请联系作者wx哟,废话不多说,一起实践吧!
实践步骤:
Step 1.在《从零开始:新手快速在国产操作系统中搭建高可用K8S(V1.28)集群落地实践》一文中, 作者已经实践了 Ingress-nginx 入口控制器的安装部署详细步骤,此处将不再累述直接上命令了。
# 添加 ingress-nginx 仓库官方源
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
# 拉取 Chart
helm pull --version 4.7.2 ingress-nginx/ingress-nginx
tar -zxf ingress-nginx-4.7.2.tgz
# 快速安装 ingress-nginx 并为其添加监控指标
helm install ingress-nginx ingress-nginx/ --namespace ingress-nginx \
--set controller.replicaCount=4 \
--set controller.hostNetwork=true \
--set controller.ingressClass=nginx \
--set controller.autoscaling.enabled=false \
--set controller.image.registry=registry.cn-hangzhou.aliyuncs.com \
--set controller.image.image=google_containers/nginx-ingress-controller \
--set controller.image.digest= \
--set controller.admissionWebhooks.patch.image.registry=registry.cn-hangzhou.aliyuncs.com \
--set controller.admissionWebhooks.patch.image.image=google_containers/kube-webhook-certgen \
--set controller.admissionWebhooks.patch.image.digest= \
--set controller.metrics.enabled=true \
--debug
温馨提示:此处作者原本是想直接通过--set
参数为ingress-nginx服务添加prometheus.io/*
注释的,但是实际下述参数虽然会添加成功,但是其格式为prometheus.io/scrape='"true"'
, 然而这并不是我们想要得,所以后续作者将通过patch打补丁的方式为ingress-nginx服务添加注释,这里简单说明一哈,若有能解决此问题的小伙伴欢迎评论区留言。
--set controller.metrics.service.annotations.'prometheus\.io/scrape'=\"true\" \
--set controller.metrics.service.annotations.'prometheus\.io/port'=\"10254\" \
Step 2.在ingress安装命令执行后,使用如下命令查看创建或更新的ingress-nginx应用,然后再使用 patch 命令为ingress-controller
服务添加抓取注释。
$ helm list -n ingress-nginx
# NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
# ingress-nginx ingress-nginx 7 2023-11-28 13:31:44.35326599 +0800 CST deployed ingress-nginx-4.7.2 1.8.2
# 为 ingress-nginx-controller-metrics 服务添加 Prometheus 抓取注释
$ kubectl patch services ingress-nginx-controller-metrics -n ingress-nginx --patch '{"metadata": {"annotations": {"prometheus.io/scrape": "true","prometheus.io/scheme": "http","prometheus.io/port": "10254"}}}'
# 验证注释
$ kubectl get svc -n ingress-nginx ingress-nginx-controller-metrics -o yaml
更新后查看服务注释是否添加成功,若成功将如下图所示:
Step 3.查看验证 ingress-nginx 部署情况,以及访问 ingress-nginx-controller-metrics 接口。
更多推荐
所有评论(0)