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

news2024/11/25 6:33:57

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.coloradmin.cn/o/953506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.10 内存ShellCode注入与格式化

ShellCode 的格式化与注入功能在实战应用中也尤为重要,格式化Shellcode是指将其转换为可执行的二进制格式,使其能够在内存中运行。注入Shellcode是指将格式化的Shellcode注入到另一个进程的内存中,以便在该进程中执行,此类功能也可…

【人工智能】—_逻辑Agent、一般逻辑、Entailment_蕴涵、命题逻辑、前向链接、反向链接、Resolution归结

文章目录 逻辑智能体Knowledge bases一个简单的基于知识的智能体 一般逻辑Entailment 蕴涵Models模型蕴涵与推理 命题逻辑逻辑连接词枚举推理有效性可满足性 推导和证明霍恩子句Forward chaining 前向链接Proof of completeness(完备性) Backward chaini…

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

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

java环境的安装 以及大学生认证免费激活IDEA

最近博主也是在学校开始学习了Java,也通过老师知道了可以通过大学生学生证申(bai)请(piao) IDEA的企业版(社区版也是够学习用的)有很多同学还是没有搞懂便做一下分享。 🌱博客主页:青竹雾色间. 😘博客制作…

发布的策略

简介 应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。 长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布,目的是尽可能避免因发…

java 八股文 基础 每天笔记随机刷

Component 和 PostConstruct 搭配使用 被Component注解标识的类在应用程序启动时会被实例化,并由Spring容器进行管理。PostConstruct是一个Java注解,用于标记一个方法在类被实例化后自动执行。该方法必须是非静态的,没有参数,且不…

android:控件TextView

一、系统学习Android控制键TextView,我的笔记里面有尝试学着使用自定义控件。 二、具体内容 1.如果在代码中给textView赋值,在xml中也给textView赋值了最后运行出来的结果显示代码中赋的值。因此得出结论,代码中的赋值会覆盖xml所附的值。 …

物联网闸道器开发整合嵌入式套件加速物联网创新

物联网闸道器开发整合套件,以可靠的物联网软体平台与开放式闸道器整合技术,协助加速物联网创新。整组套件包括软硬件整合的系统(Intel Celeron J1900平台与Windows 7 Embedded)、物联网软体平台服务(WISE-PaaS)、软体开发套件和技术支援服务以及Microsof…

OpenCV实战(30)——OpenCV与机器学习的碰撞

OpenCV实战(30)——OpenCV与机器学习的碰撞 0. 前言1. 机器学习简介2. 基于局部二值模式的最近邻人脸识别3. 图像表示与人脸识别4. 完整代码小结系列链接 0. 前言 随着人工智能的发展,许多机器学习算法开始用于解决机器视觉问题。机器学习是…

SoC 总线结构学习记录之系统存储总线(System Memory Bus)与私有设备总线

蜂鸟 E203 SOC总线结构:  蜂鸟 E203 内核 BIU 的系统存储接口 ICB 连接系统存储总线,通过其访问 SoC 中的若干存储组件,譬如 ROM,Flash 的只读区间等。  蜂鸟 E203 内核 BIU 的私有设备接口 ICB 连接私有设备总线&#xff0c…

Java 编程中的魔法之门:探索I/O流的奇妙世界

文章目录 什么是I/O流?I/O 流的层次结构1. 字节流(Byte Streams)2. 字符流(Character Streams)3. 缓冲流(Buffered Streams)4. 数据流(Data Streams)5. 对象流&#xff0…

STM32 FREERTOS osDelayUntil()异常

问题: 在使用osDelayUntil()进行固定延时时发现不起作用,程序不能按照预期的延时进行执行(比延时要快)。 #define taskMBSysManage_Delay_TIME 1000 TickType_t xLastWakeTime; xLastWakeTime xTaskGe…

软考A计划-网络工程师-复习背熟-广域网和接入网技术和因特网

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

高忆管理:庄家尾盘拉升的目的?

股市里的庄家是指一些出资者和基金司理,他们以高明的技巧和强大的实力操作股市。庄家尾盘拉升则是指在股市收盘前,庄家在商场进行一些操盘操作,然后推高股价。那么庄家尾盘拉升的目的是什么?在本文中,我们将从多个角度…

33、Flink之hive介绍与简单示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

油耳的人适合戴哪种耳机,油耳戴什么耳机不会掉

长时间佩戴入耳式耳机导致油耳朵?甚至耳朵受伤。这似乎是一个不可避免的问题,但不同耳机对听力的伤害程度却不尽相同。然而,目前为止,骨传导耳机是唯一一种在相同音量下对听力损伤最低的选择。这种耳机通过骨骼传递声音&#xff0…

亮数据:以色列一家让人向往的互联网公司,很强

大家好,我是二哥呀! 今天再给大家推荐一家小而美的互联网公司——亮数据,成立于 2014 年,总部设在以色列,全球目前约有 500 名员工,但却有超过 2000 个专利申报和计数。 我在他们的官网看到这样一段介绍&…

关于Echarts 绘制玫瑰图 (笔记)

目录 基于js文件绘图 基于vue3绘制玫瑰图 基于js文件绘图 // 定义一个配置对象 var option {// 图例设置legend: {top: bottom},// 工具栏设置toolbox: {show: true,feature: {mark: { show: true }, // 标记工具dataView: { show: true, readOnly: false }, // 数据视图工具r…

软件安全检测有哪些测试内容?怎么做

安全测试 信息安全检测是一个统称的概念,其概念的提出对于规范和明确信息安全日常工作具有重要作用。一般企业会委托第三方检测机构进行信息安全检测并且出具相关的软件安全检测报告。 信息安全检测依据是什么 根据国家标准、行业标准、地方标准或相关技术规范&a…

不会电脑分区?看这里,教你轻松学会!

随着计算机技术的不断发展,电脑分区成为管理和优化硬盘空间的重要手段之一。它是对硬盘进行逻辑划分的过程,通过将硬盘分成不同的区域,提高数据访问效率,同时保护系统和用户数据的安全性。本文将为您介绍两种常用的电脑分区方法&a…