Kubernetes(k8s)上安装Prometheus和Grafana监控

Kubernetes上安装Prometheus和Grafana监控

  • 环境准备
    • Kubernetes准备
  • 安装项目
  • 开始安装
    • 下载安装的项目
    • 安装项目
      • 替换镜像
        • 替换kube-state-metrics
        • 替换prometheus-adapter
      • 修改Service
        • 修改alertmanager-service.yaml
        • 修改grafana-service.yaml
        • 修改prometheus-service.yaml
      • 执行这些yaml资源清单文件
  • 访问Grafana
  • 其他系统的访问
    • Prometheus
    • AlertManager

环境准备

Kubernetes准备

当然前提环境是你得先有一个Kubernetes集群,版本在v1.21.*~v1.27.*之间,当然我已经准备好了Kubernetes:
在这里插入图片描述

可以看到我准备的Kubernetes版本为1.21.14的,符合要求。本篇文章也以这个版本来进行安装,上面提到的版本安装步骤和这个版本大体相同,按照步骤来即可。

安装项目

因为在Kubernetes上安装Prometheus很麻烦,所以有一些大佬在Github上贡献了一些安装它们的项目,这次我推荐使用的项目是 kube-prometheus ,地址为:https://github.com/prometheus-operator/kube-prometheus,但是你要注意安装 kube-prometheus 的版本,版本的对应列表:

Kubernetes版本Kube-prometheus版本
1.21.*0.9.0
1.22.*0.9.0、0.10.0
1.23.*0.10.0、0.11.0
1.24.*0.11.0、0.12.0
1.25.*0.12.0
1.26.*main
1.27.*main

如图:
在这里插入图片描述

要注意最好不要使用main分支的项目,因为还没有正式发版,所以建议使用1.25.*以下的Kubernetes

开始安装

下载安装的项目

来到这个网址:https://github.com/prometheus-operator/kube-prometheus/releases,选择对应版本的发行版本进行下载,因为我的Kubernetes安装的是1.21.*,所以我下载的是0.9.0版本:
在这里插入图片描述

下载之后如图:
在这里插入图片描述

安装项目

我们先将这个项目给解压:

tar -zxvf kube-prometheus-0.9.0.tar.gz

解压之后如图会出现一个 kube-prometheus-0.9.0 文件夹:
在这里插入图片描述

我们先去到 kube-prometheus-0.9.0/manifests 目录当中:

cd kube-prometheus-0.9.0/manifests/

替换镜像

因为有部分镜像是在 k8s.gcr.io 上拉取的,这个镜像是谷歌上的,国内拉取不下来,所以我们要修改一下拉取地址。因为dockerhub上已经有人提供了这个镜像的替代品,所以我们这里可以直接替换

替换kube-state-metrics

修改 ./kube-state-metrics-deployment.yaml 文件(在kube-prometheus-0.9.0/manifests/kube-state-metrics-deployment.yaml):

vim kube-state-metrics-deployment.yaml

在大概34行这个位置有 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.1.1 镜像(版本号可能不同,不影响安装):
在这里插入图片描述

在dockerhub上查询收藏最多的:
在这里插入图片描述

选择相同的版本号(⚠️注意这个版本号没有v前缀):
在这里插入图片描述

所以我们将 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.1.1 改为 docker.io/bitnami/kube-state-metrics:2.1.1 (加上docker.io前缀):
在这里插入图片描述

替换prometheus-adapter

修改 ./prometheus-adapter-deployment.yaml 文件(在kube-prometheus-0.9.0/manifests/prometheus-adapter-deployment.yaml):

vim ./prometheus-adapter-deployment.yaml

在大概34行这个位置有 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.0 镜像(版本号可能不同,不影响安装):
在这里插入图片描述

我们在此来到dockerhub搜索,同样使用这个下载和收藏最多的:
在这里插入图片描述

同样注意版本号对应:
在这里插入图片描述

所以我们将 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.0 改为 docker.io/willdockerhub/prometheus-adapter:v0.9.0 (加上docker.io前缀):
在这里插入图片描述

修改Service

因为有一些我们需要外部访问的Service设置的类型是ClusterIP,所以我们要将它改为NodePort或LoadBalancer

修改alertmanager-service.yaml

这个文件在 kube-prometheus-0.9.0/manifests/alertmanager-service.yaml ,我们直接修改:

vim alertmanager-service.yaml

按照图片提示修改,在 spec 下新增一行 type: NodePort 修改类型为 NodePort,然后再在 spec.ports 下面新增一行 nodePort: 30093 修改nodePort端口为 30093 这个端口可以自行指定 30000~32767 之间的端口:
在这里插入图片描述

修改完成后保存并退出。

修改grafana-service.yaml

这个文件在 kube-prometheus-0.9.0/manifests/grafana-service.yaml ,我们直接修改:

vim grafana-service.yaml

操作步骤一样,这里不再过多赘述,但要注意端口号不要冲突:
在这里插入图片描述

修改prometheus-service.yaml

这个文件在 kube-prometheus-0.9.0/manifests/prometheus-service.yaml ,我们直接修改:

vim prometheus-service.yaml

操作步骤一样,这里不再过多赘述,但要注意端口号不要冲突:
在这里插入图片描述

执行这些yaml资源清单文件

先来到 kube-prometheus-0.9.0 目录:
在这里插入图片描述

然后执行下面几行命令:

kubectl apply --server-side -f manifests/setup
kubectl wait \--for condition=Established \--all CustomResourceDefinition \--namespace=monitoring
kubectl apply -f manifests/

执行结果如图,创建了一堆的资源:
在这里插入图片描述

我们使用以下命令查询是否创建成功:

watch kubectl get pod -o wide -n monitoring

当安装完成之后 STATUS 的值都是 Running ,并且 READY 的值也是全部没有问题的:
在这里插入图片描述

访问Grafana

使用这行命令查看grafana的端口:

kubectl get svc -o wide -n monitoring | grep grafana

可以看到grafana对外部访问的nodePort端口为 30300,这也是我们之前设置的值:
在这里插入图片描述

我们直接通过浏览器访问任何一个节点的IP地址带上这个端口就可以访问到grafana了:
在这里插入图片描述

默认的用户名和密码是 admin/admin ,我们可以直接登陆,登陆之后要我们从新设置密码,为你们的admin用户从新设置一个新密码即可:
在这里插入图片描述

接下来我们就访问到Grafana的主页了:
在这里插入图片描述

按照我的提示点击 Dashboards -> Manage
在这里插入图片描述

然后再展开这个Default:
在这里插入图片描述

可以看到有很多的 kube-prometheus 已经为我们准备好的Dashboard:
在这里插入图片描述

我们选择 Node Exporter/Nodes 的 Dashboard 进去:
在这里插入图片描述

这个里面可以看到各个节点的 CPU 和内存信息:
在这里插入图片描述

点击 Kubernetes/Networking/Cluster 进去:
在这里插入图片描述

可以看到各个命名空间下的网络访问情况;
在这里插入图片描述

好的,更多的Dashboard你们可以自己去查看

其他系统的访问

Prometheus

使用以下命令查看Prometheus的NodePort端口:

kubectl get svc -o wide -n monitoring | grep prometheus-k8s

可以看到Prometheus的NodePort端口是我们自己设置的 30090:
在这里插入图片描述

访问进来可以直接到达Prometheus的主页:
在这里插入图片描述

然后你可以对Prometheus做一些你想要的操作

AlertManager

我们可以直接通过以下命令查询 alertmanager 的NodePort端口:

kubectl get svc -o wide -n monitoring | grep alertmanager-main

可以看到端口依然是我们之前设置的30093:
在这里插入图片描述

同样访问我们任何一个节点的30093端口就能访问到AlertManager的主页:
在这里插入图片描述

好了,Kubernetes上搭建Prometheus和Grafana的步骤就已经执行完毕了,祝你们编码开心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/118169.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟世界指南:从零开始,一步步教你安装、配置和使用VMware,镜像ISO文件!

本章目录 CentOS简介镜像下载一、新建虚拟机(自定义)1、进入主页,在主页中点击“创建新的虚拟机”2、点击创建虚拟机创建自己的虚拟机。可以选择自定义3、在“硬件兼容性(H)中选择:Workststion 15.x” ->下一步4、选择“稍后安…

Langchain使用介绍之outparser 和memory

上一篇博客中对Langchain中prompt进行了详细的介绍,此篇博客将介绍Langchain中的outparser和memory。当调用大模型生成内容时,返回的内容默认是string类型,这对于我们获取response中的某些内容信息可能会带来障碍,例如返回的内容本…

HP惠普星15青春版/惠普小欧笔记本电脑15s-du1008tx原装出厂Win11系统

适用型号:15s-du1007tx、15s-du1008tx、15s-du1009tx、15s-du1010tx、15s-du1011tx、15s-du1012tx、15s-du1013tx 自带所有驱动、出厂主题壁纸LOGO、Office办公软件、惠普电脑管家等预装程序 所需要工具:32G或以上的U盘 文件格式:ISO 文件大…

msvcr120.dll文件丢失的解决方法,四种快速解决发方法分享

你是否曾经在使用电脑时遭遇过 msvcr120.dll 文件丢失的困扰?如果你对此感到茫然无措,那么请跟随我的脚步,让我们一起探索这个问题的根源。当我一如既往地打开电脑,准备开始一天的工作时,突然发现许多应用程序无法正常…

android framework之Applicataion启动流程分析(三)

现在再回顾一下Application的启动流程,总的来说,虽然进程的发起是由ATMS服务发起的,但是进程的启动还是由AMS负责,所以需要调用AMS的startProcess()接口完成进程启动流程,AMS要处理的事情很多,它将事务交给…

WPF工控机textbox获得焦点自动打开软键盘

1.通过nuget安装 osklib.wpf 2.在textbox getFoucs中敲入如下代码即可实现获得焦点弹出软键盘 private void txtPLC_IP_GotFocus(object sender, RoutedEventArgs e){try{// Osklib.OnScreenKeyboard.Close();Osklib.OnScreenKeyboard.Show();}catch (Exception ex){MessageB…

linux添加sht3x温湿度传感器驱动记录

最近拿到一块imx6ull板子,上面有一颗温湿度传感器sht30,需要读取其数值。本人能力有限,自己写驱动还有一点困难,好在 linux内核里自带了很多器件的驱动,只需要找到相关的驱动文件根据要求修改一下设备树、添加进内核里编译就可以。…

QT(8.30)常用类与组件,实现登录界面

1.作业&#xff1a; 完成一个登录界面(图片未附带): 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QLineEdit>//行编辑器#include<QIcon>//图标#include<QLabel>//标签#include<QPushButton>//按钮#include<QIc…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书海口经济学院图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书海口经济学院图书馆

ELK安装、部署、调试 (七)kibana的安装与配置

1.介绍 Kibana 是一个基于浏览器的开源可视化工具&#xff0c;主要用于分析大量日志&#xff0c;以折线图、条形图、饼图、热图、区域图、坐标图、仪表、目标、时间等形式。预测或查看输入源的错误或其他重大事件趋势的变化。Kibana 与 Elasticsearch 和 Logstash 同步工作&am…

【FPGA零基础学习之旅#11】数码管动态扫描

&#x1f389;欢迎来到FPGA专栏~数码管动态扫描 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能指正…

[深度学习]大模型训练之框架篇--DeepSpeed使用

现在的模型越来越大&#xff0c;动辄几B甚至几百B。但是显卡显存大小根本无法支撑训练推理。例如&#xff0c;一块RTX2090的10G显存&#xff0c;光把模型加载上去&#xff0c;就会OOM&#xff0c;更别提后面的训练优化。 作为传统pytorch Dataparallel的一种替代&#xff0c;D…

Python 类和对象

类的创建 Python语言中&#xff0c;使用class关键字来创建类&#xff0c;其创建方式如下&#xff1a; class ClassName(bases):# class documentation string 类文档字符串&#xff0c;对类进行解释说明class_suiteclass是关键字&#xff0c;bases是要继承的父类&#xff0c;…

ELK安装、部署、调试(四)KAFKA消息队列的安装和部署

1.简介 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xff09;是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通…

解密Spring MVC异常处理:从局部到全局,打造稳固系统的关键步骤

&#x1f600;前言 在现代软件开发中&#xff0c;异常处理是不可或缺的一部分&#xff0c;它能够有效地提高系统的稳定性和健壮性。在Spring MVC框架中&#xff0c;异常处理机制起着至关重要的作用&#xff0c;它允许开发者在程序运行过程中捕获、处理和报告异常&#xff0c;从…

URL重定向漏洞

URL重定向漏洞 1. URL重定向1.1. 漏洞位置 2. URL重定向基础演示2.1. 查找漏洞2.1.1. 测试漏洞2.1.2. 加载完情况2.1.3. 验证漏洞2.1.4. 成功验证 2.2. 代码修改2.2.1. 用户端代码修改2.2.2. 攻击端代码修改 2.3. 利用思路2.3.1. 用户端2.3.1.1. 验证跳转 2.3.2. 攻击端2.3.2.1…

idea远程debug调试

背景 有时候我们线上/测试环境出现了问题&#xff0c;我们本地跑却无法复现问题&#xff0c;使用idea的远程debug功能可以很好的解决该问题 配置 远程debug的服务&#xff0c;我们使用Springboot项目为例(SpringCloud作为微服务项目我们可以可以使用本地注册到远程项目&…

3D DRAM:突破内存瓶颈的新希望

DRAM&#xff0c;动态随机存储器&#xff0c;是一种在计算机、消费电子、通信等领域广泛应用的内存技术。它的主要特点是在同一周期内可以随机读取或写入单字节数据&#xff0c;使得其在各种计算应用中成为不可或缺的组件。 DRAM的发展历程充满了戏剧性和技术革新。最早的DRAM诞…

使用栈检查括号的合法性 C 实现

使用栈检查括号的合法性 思路讲解&#xff1a;首先从数组数组0下标开始&#xff0c;如果是左括号直接无脑压入栈&#xff0c;直到出现右括号开始判断合法与否。遇到右括号分两种情况&#xff0c;第一种是空栈的情况&#xff0c;也就是说我们第一个字符就是右括号&#xff0c;那…

1921. 消灭怪物的最大数量

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;贪心排序 复杂度分析写在最后 Tag 【贪心】【排序】【数组】 题目来源 1921. 消灭怪物的最大数量 题目解读 dist[i] 是第 i 个怪兽与城市的初始距离&#xff0c;speed[i] 是第 i 个怪兽的移动距离。怪兽的目的是攻击…