k8s中部署Prometheus、监控nginx、HPA自动伸缩

  • 1、什么是Prometheus?
  • 2、k8s中部署Prometheus监控
  • 3、prometheus监控nginx
  • 4、基于prometheus监控nginx的HPA自动伸缩

1、什么是Prometheus?

普罗米修斯是一个云计算基础基金项目,它是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集度量,评估规则表达式,显示结果,并在观察到指定条件时触发警报。

普罗米修斯与其他度量(metrics)和监控系统的区别在于:

  • 多维数据模型(由度量名称和键/值维度集定义的时间序列)
  • PromQL是一种强大而灵活的查询语言,可以利用这种维度
  • 不依赖分布式存储;单服务器节点是自治的
  • 用于时间序列采集的HTTP pull模型
  • 通过批处理作业的中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 图形和仪表板支持的多种模式
  • 支持分层和水平联合

运行流程如下,prometheus根据配置定时去拉取各个节点的数据,默认使用的拉取方式是pull,也可以使用pushgateway提供的push方式获取各个监控节点的数据。将获取到的数据存入TSDB,一款时序型数据库。此时prometheus已经获取到了监控数据,可以使用内置的PromQL进行查询。它的报警功能使用Alertmanager提供,Alertmanager是prometheus的告警管理和发送报警的一个组件。prometheus原生的图标功能过于简单,可将prometheus数据接入grafana,由grafana进行统一管理。

Prometheus资源地址:https://github.com/coreos/prometheus-operator/

2、k8s中部署Prometheus监控

首先查找prometheus-oprator并拉取部署文件

解压prometheus-oprator包

仓库中创建新项目,kubeapps

提前下载相关镜像并上传到仓库

进入解压得到的目录,可以看到有三个组件,

  • kube-state-metrics:直接采集的数据集群无法使用,kube-state-metrics负责从prometheus的数据格式转换为k8s集群可以识别的格式。
  • prometheus-node-exporter安装在被监控端,负责采集多种数据
  • grafana可以产生图像化监控


修改主配置value.yaml文件

打开三个ingress,设定域名和路径



并修改八个镜像路径到自己的仓库路径,


添加登陆密码

接下来分别修改子配置文件的value.yaml文件
进入grafana子目录,修改value.yaml文件

修改五个镜像路径到自己的仓库路径

并打开ingress服务,设置域名

进入kube-state-metrics子目录,修改value.yaml文件

修改一个镜像路径到自己的仓库路径

进入prometheus-node-exporter子目录,修改value.yaml文件,发现不用修改

创建命名空间

指定ns安装prometheus-operator

查看pod和svc全部正常启动

控制器也正常

查看ingress也正常开启

给真机添加解析

网页输入prometheus.westos.org访问,进入

grafana.westos.org也可以访问,输入密码

grafana的图形化展示比原本的Prometheus做的好,配置默认的Prometheus

测试

添加Prometheus

看到了图形界面

3、prometheus监控nginx

使用helm图形化界面安装nginx

进入nginx,使用9.4.1版本

打开Prometheus监控

修改YAML文件,添加仓库信息

指定ns

最后可以看到修改的地方

部署成功

网页访问上面展示的url,成功访问

查看开放了9113端口监控

设备发现没有nginx,原因是未添加对应的标签release=prometheus-operator

查看nginx没有标签release=prometheus-operator,其他有

给nginx添加标签

现在服务发现就有nginx了

点击graph,选择访问流量指标,添加图

如图

4、基于prometheus监控nginx的HPA自动伸缩

之前学习了根据核心指标(cpu和mem),hpa控制副本的数量。如果想根据其他指标(比如nginx的访问量)控制的话,需要要用到自定义指标的HPA,需要提供社区标准的Custom Metric API,一般用户使用Prometheus-Adapter来提供Custom Metric API,其主要功能是将接受到custom metric api转换成普罗的请求,从普罗中查询数据返回给API Server。简单说,prometheus-adapter负责转换数据
搜索并拉取prometheus-adapter插件

解压tar包,进入

编辑 values.yaml文件,修改镜像路径,修改服务的url

上面url的编写可以查看指定ns下的svc

保险起见,进入一个容器,看url能否正确解析

创建ns,指定ns安装

安装完成后,使用提示语句,可以看到有变量出现

再详细指定ns,指定pod,指定监控指标,可以成功看到

使用python语句更清晰明了

编写hpa-nginx.yaml 文件

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:name: hpa-example
spec:maxReplicas: 10            %最少1个副本minReplicas: 1           %最多10个副本scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: nginxmetrics:- type: Podspods:metric:name: nginx_http_requests      %监控类型为nginx的访问流量target:type: AverageValue               %hpa变化的依据是平均值是否在10附近averageValue: 10


应用hpa-nginx.yaml文件

查看hpa


接下来使用hey压力测试,把hey放到/usr/local/bin可执行

运行压力测试

chmod +x hey        %赋予可执行权限
hey -n 10000 -c 5 -q 5 http://172.25.11.12/index.html   %总运行次数一万次,每秒五次访问,同时并发五个,即每秒25次访问

-w动态查看hpa,可以看到集群根据压力大小进行动态添加副本,副本数从1到2,从2到3

运维实操——kubernetes(十九)k8s中部署Prometheus、监控nginx、HPA自动伸缩相关推荐

  1. 运维实操——kubernetes(九)存储之Secret配置管理Service Account、Opaque、dockerconfigjson

    存储之Secret配置管理Service Account.Opaque.dockerconfigjson 1.什么是Secret? 2.Service Account 3.Opaque (1)从文件中 ...

  2. k8s中部署prometheus监控告警系统-prometheus系列文章第一篇

    前言 本篇文章主要介绍k8s集群中部署prometheus,并且配置prometheus的动态.静态服务发现,实现监控容器.物理节点.service.pod等资源指标,配置prometheus的web ...

  3. 运维实操——kubernetes(十一)调度nodeName、nodeSelector、亲和性、污点、容忍、删除节点

    调度nodeName.nodeSelector.亲和性.污点.容忍.删除节点 1.什么是调度? 2.nodeName 3.nodeSelector (1)节点亲和性 (2)pod亲和与反亲和 4.Ta ...

  4. caas k8s主控节点如何查询_k8s中部署prometheus监控告警系统prometheus系列文章第一篇...

    前言 本篇文章主要介绍k8s集群中部署prometheus,并且配置prometheus的动态.静态服务发现,实现监控容器.物理节点.service.pod等资源指标,配置prometheus的web ...

  5. 在 k8s 中部署 Prometheus 和 Grafana

    部署 Prometheus 和 Grafana 到 k8s Intro 上次我们主要分享了 asp.net core 集成 prometheus,以及简单的 prometheus 使用,在实际在 k8 ...

  6. 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年3月刊

    本文为大家整理了墨天轮数据社区2023年3月发布的优质技术文章,主题涵盖Oracle.MySQL.PostgreSQL等数据库的基础安装配置操作.故障处理.性能优化等日常实践操作,以及概念梳理.常用脚 ...

  7. 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年5月刊

    本文为大家整理了墨天轮数据社区2023年5月发布的优质技术文章,主题涵盖Oracle.MySQL.PostgreSQL等数据库的安装配置.故障处理.性能优化等日常实践操作,以及常用脚本.注意事项等总结 ...

  8. 运维实操——日志分析系统ELK(中)之logstash采集数据、伪装rsyslog、多行过滤、grok切片

    日志分析系统ELK(中)之logstash 1.什么是logstash? 2.Logstash安装 3.logstash简单命令行测试 4.logstash文件测试 (1)命令行输入,输出到文件 (2 ...

  9. 运维实操——zabbix监控结合睿象云报警平台及API调用

    zabbix监控结合睿象云报警平台及API调用 1.zabbix监控结合睿象云报警平台 2.API调用 1.zabbix监控结合睿象云报警平台 由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想 ...

最新文章

  1. 比较不错的一个ios找茬游戏源码
  2. 上海五校赛 丢史蒂芬妮
  3. JAVA面试题(part2)--位运算符
  4. 60个数据窗口技巧(转)
  5. 前端学习(1372):构建模块化路由
  6. linux系统管理之单机系统管理 - 超级用户和进程管理
  7. 不能因技术后天的死 而迷茫了今天的“学” 生
  8. php 数据类型 map,ResultMap和ResultType的区别
  9. 复旦大学《高等代数学(第三版)》教材习题答案
  10. 超效率dea matlab,求高人帮忙关于超效率DEA模型编程
  11. xml--json代码大全
  12. 京东商城发现了一枚Bug
  13. Mysql分表,分区的区别和联系
  14. SQL中的comment语法
  15. 如何判断一个点在三角形内部
  16. 提交模式窗口后,刷新父窗口数据+获取frameset中各模块中数据
  17. Word文档段落的前后间距单位磅改为行,行改为磅方法演示
  18. TensorFlow已死,TensorFlow万岁!
  19. 秦储数字藏品平台正式上线公测 | 实名注册用户首日突破2万!
  20. windows10+python3.5+CUDA10.0 安装pytorch教程

热门文章

  1. 如何下载Latex缺少的宏包
  2. 网络流入门——算法模板,习题和解析
  3. T Chat 第九期「 李泽磊 - 我在百度做阅读器 」9 月 1 日晚 8 点开播
  4. 超级网管员——网络服务
  5. Android定时器Timer
  6. 谷歌seo外链建设指南
  7. 双色球辅助选号工具测试版本
  8. 分词算法----正向和逆向最大匹配算法(含Python代码实现)
  9. SecureCRT-----命令大全
  10. 如何判断实用新型专利是否构成侵权