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

2023-05-16

目录:

  • 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-labels

kubectl -n prometheus-operator label servicemonitors.monitoring.coreos.com nginx release=prometheus-operator

kubectl -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之后就可以稳定,如下图所示!!
请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • PX4+XTdrone仿真环境搭建时候的一些问题与解决方案

    遇到的问题 我是2022年五月根据肖老师的XTdrone教程走的 xff0c 遇到了一些问题并且成功解决 xff0c 这些问题在2021年我同学安装的时候并没有遇到似乎 一 安装gazebo9 1最新版 xff0c 不要按照教程 我之前是按
  • 第三章 无人机进阶(一) 无人机传感器部分

    一 无人机传感器体系 1 IMU IMU是惯性导航模块 xff0c 可以感知到无人机的三轴加速度 xff0c 三轴的角度和角速度 xff0c 原理较为复杂 xff0c 此处不过多展开 xff0c 大家只需要知道IMU可以感知无人机的运动状态
  • Ubuntu下使用Vscode安装和编写Java文件教程

    最近开始学CS61B xff0c 又懒得新装IDEA xff0c 就继续使用VScode了 xff0c 毕竟只是做几个项目和lab xff0c 而不是做大型项目 xff0c vscode完全足够了 xff0c 只不过装的时候出了点问题 xf
  • 机器学习&深度学习实践笔记(一):pytorch基础与线性回归

    最近开始了机器学习与深度学习的学习与编程 xff0c 大概也还是磕磕绊绊的走过来了 xff0c 便记录一下历程与心得 线性回归理论 线性回归模型概述 线性回归的内容就是我们假设一些数据 xff0c 输出 xff08 标签 xff09 与输入
  • 1 file:/var/cudnn-local-repo-ubuntu2004-8.6.0.163 InRelease 由于没有公钥,无法验证下列签名:解决方法

    问题 我在安装完成cudnn后发现软件更新上报错 然后我发现这是因为在安装cudnn包的时候 xff0c deb包自动添加啦软件源 所以我们只需要把软件源的密钥添加上即可 解决方法 udo span class token function
  • XTDrone踩坑记录

    gazebo部分 直接报错的情况 运行ros并且启动gazebo的时候发现其实就是缺少了ros的gazebo方面的包 xff0c 安装就可以 span class token function sudo span span class to
  • PX4最新版固件

    最近研究PX4在Ubuntu20上的仿真 xff0c 然后下载PX4并且更新了子模块 xff0c 特地备份一下 xff0c 也分享出来 可以看到是所有子模块都更新完成的 xff0c 我是在make px4 gazebo之前备份的 xff0c
  • 第一章 无人机入门(二)软件架构

    前言 之前我写了一篇关于无人机硬件架构的博客 xff0c 接下来我继续写关于软件架构的 什么是软件 xff1f 百度百科里面软件的定义是 按照特定顺序组织的计算机数据和指令的集合 xff0c 在这里我们只需要理解为程序即可 xff0c 也就
  • CV学术笔记(一)从小白开始入门科研:学习基础理论

    前言 这两个月开始学习深度学习与计算机视觉 xff0c 从懵懵懂懂到初入门槛 xff0c 从完全不懂科研的小白到复现第一篇论文 xff08 2023 4 1日完成MobileNet复现与Resnet复现 xff09 虽然磕磕绊绊 xff0c
  • C++面试常见题目问与答(汇总一)

    此次整理来自QQ群186588041 xff0c 所有资料来自谭校长 张教主 H神 Robort fight for dream 刀刀 二货 主要是总结了一些经常被问道的面试题 欢迎加入群182374342 xff08 原来那个群已经解散了
  • 13.注意力机制

    从RNN中得到启发 我们使用递归神经网络进行序列到序列的预测 xff0c 接受一些输入序列然后输出一些序列 xff08 比如说翻译 xff0c 或者视频字幕 xff09 xff0c 其中的工作方式如下 xff1a 一个称为编码器的循环神经网
  • 12.循环神经网络

    前文总结 之前已经讲了包括CNN结构 训练方法等 xff0c 但是这些实际上只是一种前馈结构 xff0c 所有的信息都是前向传播 xff08 有分支 xff09 xff0c 每一层都接受单一输入 xff08 如图像等 xff09 xff0c
  • 14.卷积神经网络的可视化与理解

    CNN的可视化与理解 在之前我们讨论了一系列内容 注意力机制 xff1a 注意力如何成为我们可以添加到当前的神经网络中的机制 xff0c 让模型在不同的时间步长上专注于输入的不同部分 xff0c 然后构建通用自注意力层 xff0c 用来构建
  • docker常用镜像命令总结,包含将docker镜像推送到dockerhub,全程无废话

    01 查看镜像 docker images span class token punctuation span root 64 i rbj0ryi8 span class token punctuation span span class
  • 无人机-2多翼无人机的结构与硬件

    一 多旋翼无人机的机体布局 1 多旋翼无人机的结构布局 动力输出轴上判断几轴飞行器 动力轴越多 xff0c 飞行稳定性相对越好 xff0c 可靠性相对降低 xff08 模块多 xff0c 隐患多 xff09 常规固定式 xff1a 分为带边
  • 无人机-4无人机结构设计

    一 需求分析 概述 xff1a 设计上的纸面参数做到一个切实用到飞机上的一个设计参数的一个过程 1 飞机的任务是什么 针对设计目的有不同结构需求的 物流无人机 xff1a 仓储位置 摄影无人机 xff1a 拍照 xff0c 搭载稳定的三轴云
  • ubuntu20.04安装ros noetic以及创建ros工作空间catkin_ws

    章节目录 一 安装ROS1 设置下载源2 安装依赖项3 安装ros4 配置环境变量5 运行ROS6 rosdep初始化7 安装rosinstall8 启动例子 xff08 小海龟 xff09 二 创建ROS工作空间 catkin ws1 创
  • MATLAB学习笔记(注释超详细)

    1 matlab数据类型转换 xff0c 例 xff1a uint8函数将数值数据转换成无符号8位整数 xff0c int8将数值数据转换为带符号8位整数 x 61 int8 129 因为带符号8位整型数的最大值为127 xff0c 129
  • 一、SLAM算法与导航实战(毕设开源分享)

    目录 1 开源分享 2 建图结果 2 1 多观测点环境结果 xff1a 2 2 长廊环境建图结果 xff1a 1 开源分享 今天终于完成了毕设项目的落地和算法实现 xff0c 比较感叹这里面的坑 xff0c 不仅仅是Linux ROS xf
  • 【3D视觉工坊】第二期公开课:相机标定的基本原理与经验分享 笔记

    课程链接 xff1a 3D视觉工坊 第二期公开课 xff1a 相机标定的基本原理与经验分享 哔哩哔哩 bilibili

随机推荐

  • writeup-RrEeGgEeXx EKOPARTY

    State of the art on authentication mechanisms 题目如上 xff0c 下载完附件 xff0c 扔进IDA xff0c 发现又是c 的 于是又扔进reflector反编译一下 分析了下发现有一个对字
  • FreeRTOS 学习笔记(自用)

    前言 xff1a 本文章用于记录学习FreeRTOS xff08 韦老师 xff09 期间的笔记以及一些个人理解 xff08 带完善 xff09 一 学习内容 xff1a 1 裸机及操作系统 2 FreeRTOS功能及其实现原理 3 线程通
  • 《单片机串口》—将传感器获取的数值在上位机显示

    这里写目录标题 1 单片机通过串口发送单个字符2 单片机通过串口发送字符串3 单片机将传感器获取到的数字值发送到上位机 之前在学蓝牙通信的时候如何将单片机获取到的传感器的数值发送到上位机遇到了不少的问题 由于数据的发送一种是字符格式一种是
  • 三天让车立起来!STM32平衡车入门PID —— 第三天(PID调参)

    说明 xff1a 本文章适用于STM32初学者 xff0c 想完成一个好玩且有深度的项目但不知道从何下手的同学 PID调参是平衡车的精髓所在 xff0c 参数整定的好坏直接影响到平衡车的平衡效果 有的车平衡时来回晃而参数选的好的车就能稳稳地
  • PCB笔记-原理图

    1 学习路线 画PCB追求的是效率 xff01 xff01 xff01 2 元件库的创建 2 1 元件符号 元件符号是元件在原理图上的表现形式 xff0c 主要由元件边框 xff0c 管脚 xff08 包括管脚序号和管脚名称 xff09 x
  • FreeRTOS任务调度启动流程

    FreeRTOS任务调度启动流程 PrefacePreviewAttentionFreeRTos目录结构解释 FreeRTos任务调度一 vTaskStartScheduler函数中需要注意的细节二 xPortStartScheduler函
  • 正点原子视频学习笔记—Verilog下按键消抖, 实现LED灯的点亮和熄灭

    正点原子视频学习笔记 Verilog下按键消抖 实现LED灯的点亮和熄灭 在学习FPGA的基础阶段会有按键控制LED灯亮灭的实验 xff0c 其中避免不了要对按键进行消抖处理 xff0c 以及LED的控制模块 xff0c 和顶层例化模块 本
  • 蚂蚁4面和体检都过了,最后却因为背调挂了导致无业,网友:没养个备胎?

    因为背调而与offer失之交臂的求职者并不是个例 xff0c 最近看到一位程序员发帖称 xff0c 自己蚂蚁4面和体检都过了 xff0c 最后却因为合并简历而挂了 着实令人可惜 原贴如下 xff1a 楼主在评论区解释称 xff0c 自己已经
  • Linux C 下的socket网络编程

    1 socket简介 在我们常用的网络通信中 xff0c socket是最常用的一种 xff0c socket编程也称套接字编程 xff0c 下面我们将对socket编程进行相关讲解 xff0c 其中包括服务器与客户端通信讲解 xff0c
  • 关于stm32结构体

    刚刚看到stm32结构体 xff0c 这个部分还是很重要的 xff0c 做一个小结总结一下 正常标注结构体形式 struct GPIO 成员列表 这样就定义了一个结构体 xff0c 但是当需要定义变量时就需要 struct GPIO GPI
  • stm32f103c8t6 + 串口打印 + dh1

    1 首先新建一个c8t6的工程 如果使用本程序的话 xff0c 可直接运行 xff0c 亲测有效 xff0c 如果想移植功能的同学继续往下看 程序里面的注释也写的很清楚 2 串口打印 首先拿到usart c和usart h文件放置自己的工程
  • 【VIBE: Video Inference for Human Body Pose and Shape Estimation】论文阅读

    论文连接 xff1a https arxiv org pdf 1912 05656 pdf 代码连接 xff1a https github com mkocabas VIBE Video Inference for Human Body P
  • 操作系统——处理机调度

    2 2 处理机调度 2 2 1 调度的概念 调度的基本概念 xff1a 处理机调度是对处理机进行分配 xff0c 从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行 xff0c 以实现进程并发执行 调度的层次 xff1a 1 xf
  • ROS学习指南(五)

    IMU在ROS里的使用方法 一 IMU消息包在ROS里的数据格式 IMU是安装在机器人内部的传感器模块 xff0c 用来测量当前机器人的位姿 常用的六轴IMU可以解算出机器人xyz三个方向的角速度和角加速度 消息包定义如下 xff0c 其中
  • vins-fusion环境配置,解决opencv3->4的cv::bridge问题

    本文主要介绍如何搭建vins fusion的运行环境 xff0c 以及解决vins fusion编译运行时遇到的环境冲突问题 xff0c 并在此基础上实现例程的运行 本文是在已经安装好 ROS 的基础上 xff0c 在 Ubuntu20 0
  • 解决ROS编译过程中的简单的环境问题

    一 rosmake ERROR No arguments could be parsed into valid package or stack names 该错误是因为找不到工作目录路径 xff0c 设置为当前绝对路径名即可 xff0c
  • 《headfirst设计模式》读书笔记9-迭代器和组合模式

    目录 1 封装遍历2 定义迭代器模式2 1 部分源码2 1 1 MenuItem h2 1 2 Menu h2 1 3 Iterator h2 1 4 ArrayIterator h2 1 5 ArrayIterator cpp2 1 6
  • 【论文笔记】Stereo Camera Localization in 3D LiDAR Maps

    论文笔记 Stereo Camera Localization in 3D LiDAR Maps 随着 3D 光探测和测距 LiDAR 传感器的出现 xff0c 同步定位和映射 SLAM 技术蓬勃发展 xff0c 因此准确的 3D 地图很容
  • C盘有哪些软件可以删除呀

    今天下载QQ群里面的文件 xff0c 电脑居然弹窗 磁盘空间不足 xff0c 我心头一痛 我不是上个月才清过的吗 xff1f xff01 好吧 xff0c 那再来一次 这是我删了一通之后的C盘状态 xff1a 是不是还是很满 xff1f 没
  • Kubernetes-集群结合普罗米修斯、监控nginx、hpa动态伸缩

    目录 xff1a Prometheus简介一 k8s集群部署Prometheus二 Prometheus监控应用nginx三 prometheus实现k8s集群的hpa动态伸缩 Prometheus简介 Prometheus 是由 Soun