目录:

  • Prometheus简介
  • 一.k8s集群部署Prometheus
  • 二. Prometheus监控应用nginx
  • 三. prometheus实现k8s集群的hpa动态伸缩

Prometheus简介

Prometheus 是由 SoundCloud 开源监控告警解决方案,与Kubernetes同属CNCF,也是仅次于k8s的第二大开源项目。Prometheus 提供了通用的数据模型和便捷的数据采集、存储和查询接口,同时基于Go实现也大大降低了服务端的运维成本,目前已支持Kubernetes、Etcd、Consul等多种服务发现机制。
Prometheus:监控服务的运行状态,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态。

  1. prometheus server: 定期从静态配置的 targets 或者服务发现(主要是DNS、consul、k8s、mesos等)的 targets 拉取数据。

  2. exporters:负责向prometheus server做数据汇报的程序统。而不同的数据汇报由不同的exporters实现,比如监控主机有node-exporters,mysql有MySQL server exporter

  3. pushgateway:主要使用场景为:

Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙原因,导致 Prometheus 无法直接拉取各个 target 数据。在监控业务数据的时候,需要将不同数据汇总, 由 Prometheus 统一收集。

  1. Alertmanager:实现prometheus的告警功能。

  2. web Ui:主要通过grafana来实现webui展示。

一.k8s集群部署Prometheus

先拉取需要的仓库
新建项目kubeapps用来上传镜像

helm pull apphub/prometheus-operator

拉取下来的是压缩包,解开并进入目录

tar zxf prometheus-operator-8.7.0.tgz
cd prometheus-operator/
ls

先修改value.yaml
vim value.yaml

打开ingress服务
并将所有的镜像名字都定义为kubeapps/
添加hosts.
注意:文件中的所有镜像都需要自己拉取下来并上传到私有仓库中,而且版本要一一对应一致!!


cd charts/
cd grafana/
vim values.yaml

将所有镜像都改为kubeapps/
并将ingress打开,如下图
下图中的镜像都需要自己拉取,注意版本!!

继续编辑文件

cd ..
cd kube-state-metrics/
vi values.yaml


只需要改一个镜像,记得拉取!

创建namespace,并指定namespace安装

kubectl create namesapce prometheus-operator
helm install prometheus-operator . -n prometheus-operator

查看节点的状态和ingress状态

kubectl -n prometheus-operator get pod
kubectl -n prometheus-operator get ingress


然后就可以在网页访问测试了
记得做本地解析

vim /etc/hosts
172.25.0.10 prometheus.westos.org granfana.westos.org

输入账户密码登陆!

二. Prometheus监控应用nginx

上一篇文章介绍了搭建helm的图形化界面:
先访问helm的图形化界面kubeapps.westos.org

先搜索nginx

然后按照下图进行操作:

修改yaml文件的内容:

我们刚才修改的内容在changes都可以看到很详细!!

测试是否添加成功

kubectl get pod
kubectl get all
kubectl get svc

查看svc分配的IP地址

访问IP,可以看到nginx发布页面!!

但是!!
此时的nginx还无法被prometheus发现,原因是未添加对应的标签release=prometheus-operator

查看并添加标签给nginx

kubectl -n prometheus-operator get servicemonitors.monitoring.coreos.com --show-labelskubectl -n prometheus-operator label servicemonitors.monitoring.coreos.com nginx release=prometheus-operatorkubectl -n prometheus-operator get servicemonitors.monitoring.coreos.com nginx --show-labels

此时在prometheus.westos.org下的status中的Service Discovery可以看到被发现的nginx服务
第一行就是nginx!!!

看到发现的服务后,点击Graph 添加Graph
可以看到图形

kubectl -n prometheus-operator get pod

三. prometheus实现k8s集群的hpa动态伸缩

添加prometheus-adapter插件

helm search repo prometheus-adapter
helm pull apphub/prometheus-adapter
tar zxf prometheus-adapter-2.1.1.tgz
cd prometheus-adapter/
ls

编辑values.yaml文件,修改镜像的信息

vim values.yaml

我们可以进入一个镜像,查看它是否有解析

kubectl run -it --rm --image=busyboxplus
nslookup prometheus-operator.prometheus-operator,svc

指定namespace安装

helm install prometheus-adapter . -n prometheus-operator


查看监控信息

kubectl get pod -n prometheus-operator

查看nginx服务详细信息

kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/nginx-7dc5d5976-llz88/nginx_http_requests


执行hpa文件

kubectl apply -f hpa-nginx.yaml


使用hey访问nginx,给予压力
将hey的二进制程序放到/usr/local/bin/

cp hey_linux_ad64 /usr/local/bin/

hey -n 10000 -c 5 -q 5 http://172.25.0.12/index.html

持续查看hpa状况,可以看到集群根据压力大小进行动态添加副本,实现动态伸缩。

kubectl get hpa hpa-example -w

我们给的压力是5*5=25。每个节点能有10个pods所以,需要3个replicas之后就可以稳定,如下图所示!!

Kubernetes-集群结合普罗米修斯、监控nginx、hpa动态伸缩相关推荐

  1. k8s集群搭建普若米修斯,监控rabbitmq集群

    背景 这几天在做关于容器化部署的工作,这里做一个简单的分享,给容器内的rabbitmq集群+一个普若米修斯监控服务 先决条件: 拥有一个k8s集群(一主2从) k8s集群上已经搭建了rabbitmq集 ...

  2. 普罗米修斯监控服务之-监控携带metric接口的服务

    第一部分:课前小菜: 例子: 分布式:将多台Linux主机组合在一起,做成像一台主机一样来使用 微服务:将一台Linux主机拆分成多台Linux使用 淘宝:搜索页.商品详情页.订单页.支付页.物流.评 ...

  3. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  4. 一篇文章搞定Prometheus普罗米修斯监控系统的部署

    Prometheus普罗米修斯监控系统 一.普罗米修斯监控概述 1.1 什么是普罗米修斯监控 二.时间序列数据 2.1 什么是序列数据 2.2 时间序列数据特点 2.3 普罗米修斯特征 三.普罗米修斯 ...

  5. 普罗米修斯监控linux,Prometheus(普罗米修斯)搭建监控

    Prometheus(普罗米修斯) 实验环境:(各个主机,ip,所需服务) docker01 docker02 docker03 1.10 1.20 1.30 NodeEXporter NodeEXp ...

  6. 阿尔萨斯监控平台普罗米修斯监控平台对服务器资源的监控

    一.arthas-阿尔萨斯监控平台 内存监控: 1.打开RDMS,选择应用实例,在'快捷方式'下拉选项中选择arthas 2.打开监控界面,输入:dashboard -i 5000 备注:-i 刷新实 ...

  7. 普罗米修斯监控docker 服务

    环境 192.168.254.127 (监控服务器) 192.168.254.128 (被监控机器) 首先在监控服务器安装: 1.安装Node Exporter 来收集硬件信息 所有节点运行以下命令安 ...

  8. 普罗米修斯监控k8s集群

    Kubernetes集群资源监控 概述 监控指标 一个好的系统,主要监控以下内容 集群监控 节点资源利用率 节点数 运行Pods Pod监控 容器指标 应用程序[程序占用多少CPU.内存] 监控平台 ...

  9. Prometheus企业级监控、普罗米修斯监控他来啦,配置邮箱报警、安装篇

    文章目录 Prometheus企业级监控 1. Prometheus架构介绍 ### 1.1 组件说明 1.2 总结: 1.3 对比Zabbix 1.4 环境介绍 Prometheus部署 2.2 配 ...

  10. 普罗米修斯监控服务之PromQL语法和常用计算

    PromQL QL顾名思义,Query language即查询语言.Prometheus作为强大的开源监控系统,最大的依赖便是PromQL.是监控数据个性化查询.展示的基础.所以要掌握Promethe ...

最新文章

  1. 如何查看tensorflow源代码
  2. VUE data传值
  3. 大家整齐的qipaifans朗读声忽然乱了
  4. const变量初始化问题
  5. Nginx开启stub_status模块配置方法_nginx
  6. NCBI引物设计-查找目的基因前后序列方法、序列比对
  7. 什么是网站的统计代码
  8. Spring+SpringMVC+MyBatis+JQ+BootStrap练习
  9. IAST 初探:博采众长、精准定位、DevOps友好
  10. 笔记本用PCIE转并口卡连接H-JTAG烧写PXA270 NOR Flash
  11. WindwosServer系统一些设置【网卡驱动修复】【安装UWP应用】【服务器管理取消开机自启动】
  12. AtCoder Beginner Contest 240 D
  13. 如何创建CGColorRef在view.layer.borderColor上使用
  14. 《肖申克的救赎》- 阅后小记
  15. c++生成DLL文件(visual studio 2019)面向小白萌新
  16. 一文读懂如何使用FPGA驱动PHY芯片
  17. web类靶机暴力破解
  18. 三种js轮播实现方式详解(看一遍就会)
  19. 大二开始职业规划正是时候
  20. cisco 路由器 无线配置

热门文章

  1. 潘正磊 再过三五年 AI会变成开发人员的基本概念
  2. 论持续发展创客教育的意义
  3. MATLAB实现CNN-BiLSTM卷积双向长短期记忆神经网络数据分类预测
  4. 云徙完成B轮3.5亿融资 领跑数字中台赛道
  5. 基于Cordova的博客园APP
  6. 2020年最好用的手机是哪一款_目前最值得买的4部手机,2020年良心旗舰,看看你用上了哪部?...
  7. Springboot/MybatisPlus动态切换数据源
  8. Spring Boot使用动态数据源
  9. 【黑马】贪吃蛇——你的第一个简易Java小游戏
  10. TP-LINK交换机安全配置的设置方法