k8s-prometheus监控

news/2024/5/19 0:57:28 标签: kubernetes, prometheus, docker

文章目录


prometheus_9">一、prometheus

Prometheus是古希腊神话里泰坦族的一名神明,名字的意思是"先见之明",素有Prometheus被宙斯惩罚,饱受肝脏日食夜长之苦的传说…

1.简介

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。
在这里插入图片描述

prometheus_15">2.prometheus特点

1)多维度数据模型
2)灵活的查询语言(PromQL):可以对采集的metrics指标进行加法,乘法,连接等操作;
3)可以直接在本地部署,不依赖其他分布式存储;
4)通过基于HTTP的pull方式采集时序数据;
5)可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端;
6)可通过服务发现或者静态配置来发现目标服务对象(targets)。
7)有多种可视化图像界面,如Grafana等。
8)高效的存储,每个采样数据占3.5 bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G。
9)做高可用,可以对数据做异地备份,联邦集群,部署多套prometheus,pushgateway上报数据

prometheus_27">二、部署prometheus

在harbor创建项目仓库,并自行上传对应镜像(所需镜像根据文件需要得来);本实验涉及镜像如下:
在这里插入图片描述

[root@k8s2 helm]# tar zxf kube-prometheus-stack-39.11.0.tgz
[root@k8s2 helm]# cd kube-prometheus-stack/
[root@k8s2 kube-prometheus-stack]# kubectl create ns kube-prometheus-stack
[root@k8s2 kube-prometheus-stack]# helm -n kube-prometheus-stack install kube-prometheus-stack .

在这里插入图片描述

修改svc访问方式为LoadBalancer:
[root@k8s2 kube-prometheus-stack]# kubectl  -n kube-prometheus-stack edit svc kube-prometheus-stack-grafana
[root@k8s2 kube-prometheus-stack]# kubectl  -n kube-prometheus-stack edit  svc kube-prometheus-stack-prometheus

修改svc访问方式见下图
在这里插入图片描述
访问prometheus监控页面 http://192.168.56.103:9090/
在这里插入图片描述
访问grafana监控页面 http://192.168.56.102/
默认用户/密码: admin/prom-operator
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
最终效果见下图:在这里插入图片描述

三、部署nginx监控实例

上传所需镜像
[root@k8s1 ~]# docker pull bitnami/nginx-exporter:0.11.0-debian-11-r58
[root@k8s1 ~]# docker push reg.westos.org/bitnami/nginx-exporter:0.11.0-debian-11-r58

[root@k8s2 nginx]# vim values.yaml
在这里插入图片描述在这里插入图片描述
部署应用
[root@k8s2 nginx]# helm install myapp .
在这里插入图片描述
测试
在这里插入图片描述
prometheus监控指标
在这里插入图片描述

prometheusadapter_67">四、部署prometheus-adapter

[root@k8s2 helm]# helm -n kube-prometheus-stack install prometheus-adapter prometheus-adapter-3.4.0.tgz
在这里插入图片描述在这里插入图片描述
删除原有hpa
[root@k8s2 helm]# kubectl delete hpa --all
新建并运行hpa:

[root@k8s2 helm]# vim nginx-hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-nginx
  namespace: default
spec:
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metric:
        name: nginx_http_requests
      target:
        type: AverageValue
        averageValue: 10
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp-nginx

[root@k8s2 helm]# kubectl apply -f nginx-hpa.yaml

压力测试
[root@k8s1 ~]# mv hey /usr/local/bin/
[root@k8s1 ~]# chmod +x /usr/local/bin/hey
[root@k8s1 ~]# hey -n 10000 -c 5 -q 10 http://myapp.westos.org/index.html

观察hpa动态弹缩
在这里插入图片描述
prometheus监控指标
在这里插入图片描述



http://www.niftyadmin.cn/n/165511.html

相关文章

Spark SQL函数定义【博学谷学习记录】

1 如何使用窗口函数窗口函数格式:分析函数 over(partition by xxx order by xxx [asc|desc] [rows between xxx and xxx])学习的相关分析函数有那些? 第一类: row_number() rank() dense_rank() ntile()第二类: 和聚合函数组合使用 sum() avg() max() min() count()第三类: la…

Vue3电商项目实战-个人中心模块5【11-订单管理-取消订单、12-订单管理-删除订单、13-订单管理-确认收货】

文章目录11-订单管理-取消订单12-订单管理-删除订单13-订单管理-确认收货11-订单管理-取消订单 目的:完成取消订单操作 大致步骤: 准备取消原因的常量数据准备取消订单的API接口函数订单列表准备一个取消订单组件 提取取消订单组件取消订单逻辑封装 单条…

RTP载荷AAC

RTP载荷H264 RTP载荷H265 AAC音频格式ADTS头详解 RTP包的结构: RTP头在 “RTP载荷H264(实战细节)”讲的很清楚了,不了解的可以从上面链接进入查看,AAC中RTP头的使用方法和H264一样,下面介绍下RTP载荷AAC的载荷结构:…

J10:主从同步切换的坑,脑裂

主从切换的坑 主从数据不一致 主从库间的命令是异步进行的(主库在本地执行完命令后,就向客户端返回结果了,如果从库还没执行命令,数据就不一致了) 滞后的原因 主从网络延迟。从库可能接收到了命令,但是…

算法的时间复杂度介绍

本文主要算法时间复杂度的相关知识。1 概述算法(Algorithm)是指用来操作数据、解决程序问题的方法。对于同一个问题,使用不同的算法,也许最终得到的结果是相同的,但在执行该算法所需的时间和(存储&#xff…

普通插槽、具名插槽、作用域插槽

插槽 插槽就是子组件提供给父组件的占位符,用slot来表示,父组件可以在这个占位符中填充各种的模板代码。 为什么要使用插槽? 你可能不太明白为什么要给子组件传入HTML而不是直接写在子页面中内,如果出现这种情况,你…

总结793

早上: 6:00提交总结,最近也不知道怎么回事,早上五六点就醒了,明明定的是七点的闹钟。关键是醒了之后,就睡不着了。我还想多睡点呢! 7:38起床 7:53出门 8:00~8:07 100个开合跳 8:12到图书馆…

网络系统集成作业局域网路由器的配置

一 实验需求:静态路由实验,建立拓扑pc1>>R1>>R2>>R3>>pc2,使pc1与pc2能相互通信。为公司网络配置路由器,使内部网络可以访问Internet。将内网服务器80端口映射出去,允许外网用户访问二 需求分…