k8s搭建kube-prometheus

后续再补一个k8s集群搭建的博客,从0开始搭建k8s集群。使用kube-prometheus非常方便,主要问题只在于拉取镜像。除了拉取镜像外其他时间5分钟即可。耐心等待拉取镜像。

一.kube-prometheus简介

kube-prometheus 是一个专为 Kubernetes 设计的开源监控解决方案,基于 Prometheus 生态构建,旨在简化集群监控组件的部署和管理。

仓库地址:https://github.com/prometheus-operator/kube-prometheus/tree/main

组件与架构

  • Prometheus Operator
    • 自动化管理 Prometheus、Alertmanager 等资源的控制器,通过 Kubernetes 自定义资源(CRD)定义监控规则和服务发现逻辑,动态生成配置文件
    • 支持高可用部署(如 StatefulSet)和数据持久化(Persistent Volume)
  • Prometheus Server
    • 核心时序数据库,负责指标采集、存储和告警规则评估
    • 支持动态服务发现(如 Kubernetes 节点、ServiceMonitor)和静态配置
  • ​Alertmanager
    • 集中处理告警信息,提供去重、分组、路由(邮件/Webhook)等功能
  • Grafana
    • 可视化平台,内置预配置的 Kubernetes 监控仪表盘(如节点资源使用、Pod 状态等)
  • ServiceMonitor
    • 自定义资源,定义 Prometheus 如何从 Kubernetes Service 抓取指标(如选择器匹配标签、端口配置)
  • ​辅助组件
    • ​Node Exporter:采集节点级指标(CPU/内存/磁盘)
    • ​kube-state-metrics:转换 Kubernetes 资源状态为 Prometheus 可识别的指标(如 Deployment 副本数)
    • ​Thanos Sidecar/Query:实现长期存储和跨集群查询(高可用场景)

二. 前置环境

1.操作系统配置

三台centos7.9的服务器

在这里插入图片描述

2.k8s集群

搭建部分可以看另一个文章。

版本为1.20.9
在这里插入图片描述

只需要配置网络插件即可,不用配ingress

在这里插入图片描述

三.拉取仓库以及apply yaml文件

1.git拉取仓库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查阅资料发现1.20的版本对应的是release-0.8的版本,直接加-b拉取对应版本即可

git clone https://github.com/prometheus-operator/kube-prometheus.git -b release-0.8

下完后有如下文件

在这里插入图片描述

2. apply配置文件

直接在github官网拿去配置命令即可,注意不同的release版本命令不太一样。我的是0.8版本

第二行代码要进入setup文件执行,再cd…出来运行第三行代码

# Create the namespace and CRDs, and then wait for them to be available before creating the remaining resources
kubectl create -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/

这里创建的东西都会在monitoring这个命名空间里,查询容器时注意加命名空间,拉取时间比较长,耐心等待20分钟。

在这里插入图片描述

其实执行完这两个步骤如果能够全部runing起来就很容易了,但是大部分情况下有部分容器会拉取不到。所以可以使用dockerhub来拉起镜像

3.拉取不到镜像的解决办法

在这里插入图片描述

假设我这个pod拉取不下来,处于rollback状态之类的状态,我们可以直接进入menifests文件夹找到这个名字的deployment.yaml

在这里插入图片描述

vim进入该文件后找到image,把它改成一个可以使用的,原本是一个k8s.io的image,我找到的是图片中的这个image地址,改完保存出来apply后下载起来就快了

apply -f kube-state-metrics-deployment.yaml  

在这里插入图片描述

4.dockerhub上查询images

如何找到上面的image网址呢?可以直接上浏览器打开dockerhub.com,最好使用梯子

在这里插入图片描述

search栏直接搜索你要的镜像,比如我要的镜像是kube-state-metrics的2.0.0版本

那就直接搜索kube-state-metrics即可

在这里插入图片描述

点进去点击tag再查询跟你一样的版本即可,注意选择版本号就行,不带其他字符

在这里插入图片描述

四.修改部分服务TYPE使其对外部可见

需要将alertmanger-main,grafana和node-exporter的type修改为nodeport,才能够在浏览器中访问

在这里插入图片描述

1.修改alertmanger-service.yaml

在spec中加入type

在这里插入图片描述

执行

kubectl apply -f alertmanager-service.yaml

改完后再次查看svc,可以看到alertmanger-main的type已经变成了NodePort,并且其端口号映射到了32104

在这里插入图片描述

这时我们访问主机的32104端口号就可以进入alertmanger的界面了

在这里插入图片描述

2.修改grafana-service.yaml

同上在spce中加入type字段

在这里插入图片描述

再执行

kubectl apply -f grafana-service.yaml 

可以看到grafana也变成了nodeport,同时其端口也对外暴露了

在这里插入图片描述

在浏览器中打开32667端口,能够正常进入界面

在这里插入图片描述

3.修改prometheus-service.yaml

同上在spce中加入type字段
在这里插入图片描述

再执行

kubectl apply -f prometheus-service.yaml

可以看到prometheus-k8s的type变为了nodeport,同时暴露其端口

在这里插入图片描述

在浏览器中打开31695端口,能够正常进入界面

在这里插入图片描述

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

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

相关文章

uni-app——数据缓存API

数据缓存API 在 uni-app 开发中,数据缓存 API 起着重要作用,它能够将需要的数据保存到本地,同时也提供了获取本地缓存数据、移除缓存数据以及清理缓存数据的功能。在实际项目里,数据缓存 API 常被用于存储会员登录状态信息、购物…

突破时空边界:Java实时流处理中窗口操作与时间语义的深度重构

一、流处理范式的革命性演进 在数字化浪潮的推动下,数据处理范式正经历着从批量到实时的根本性转变。这种转变不仅改变了数据处理的时效性特征,更重新定义了时间维度在计算模型中的战略地位。Apache Flink的统计数据显示,现代流处理系统每秒…

【2025 深圳大学-腾讯云程序设计竞赛(热身赛)】题解

比赛链接 A. Cloud Studio的共享连接 题目大意 && Solution 给定 T T T 组长度均为 12 12 12 的字符串 s s s。 对每个 s s s,将其按从左到右的顺序两两分组形成 6 6 6 个 A S C I I \rm{ASCII} ASCII 码,对这 6 6 6 个 A S C I I \…

APScheduler - 用户指南

本文翻译整理自:https://apscheduler.readthedocs.io/en/3.x/userguide.html 文章目录 一、安装 APScheduler二、代码示例三、基本概念四、选择合适的 scheduler, job store(s), executor(s) and trigger(s)五、配置调度器方法 1:方法 2:方法 3: 六、启动调度器七、…

vue3:十一、主页面布局(优化页面跳转方式)

:router"true" 一、参考文章 vue3:十一、主页面布局(实现基本左侧菜单右侧内容效果)-CSDN博客 参考上述文章可知,页面跳转是通过在js中定义的菜单中携带的path,然后通过菜单的点击事件完成的跳转,现在可以进行优化,直…

每日一题--C与C++的差别

C与C的差别 1. 编程范式 C 纯 过程式编程语言,强调函数和结构化编程。 代码通过函数和顺序步骤组织,适合底层系统开发。 C 支持 多范式编程: 过程式编程 面向对象编程(OOP)(类、继承、多态) …

Etcd 服务搭建

💢欢迎来到张胤尘的开源技术站 💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Etcd 服务搭建预编译的二进制文件安装下载 etcd 的…

玩转C#函数:参数、返回值与游戏中的攻击逻辑封装

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

WebRTC建立Description的通信的实际的原理

一、正确流程的核心逻辑 // 发送端正确代码示例 const senderPC new RTCPeerConnection();// 生成Offer时立即开始收集候选 ✅ senderPC.createOffer().then(offer > {await senderPC.setLocalDescription(offer); // 触发icecandidate事件sendToReceiver(offer); });// …

EmbodiedSAM:在线实时3D实例分割,利用视觉基础模型实现高效场景理解

2025-02-12,由清华大学和南洋理工大学的研究团队开发 一种名为 EmbodiedSAM(ESAM)的在线3D实例分割框架。该框架利用2D视觉基础模型辅助实时3D场景理解,解决了高质量3D数据稀缺的难题,为机器人导航、操作等任务提供了高…

信创-人大金仓数据库创建

一. 官文 资源下载地址 https://download.kingbase.com.cn/xzzx/index.htm 下载安装文件 下载授权文件 产品文档地址:https://help.kingbase.com.cn/v8/index.html 二. 概念 2.1 体系结构 ‌ 实例结构 ‌:由数据库文件和 KingbaseES 实例组成。数据…

C++第三种异质集合 std::any方式实现

#include <type_traits> #include <any> #include <functional> #include <iomanip> #include <iostream> #include <typeindex> #include <typeinfo> #include <unordered_map> #include <vector> //any是编译期的异质…

Springboot实现使用断点续传优化同步导入Excel

springboot实现使用断点续传优化同步导入Excel 需求前言断点续传前端实现后端实现完结撒花&#xff0c;如有需要收藏的看官&#xff0c;顺便也用发财的小手点点赞哈&#xff0c;如有错漏&#xff0c;也欢迎各位在评论区评论&#xff01; 需求前言 在跨境电商系统中&#xff0c…

mysql 对json的处理?

MySQL从5.7版本开始支持JSON数据类型&#xff0c;并提供了多种函数来查询和处理JSON数据。以下是一些基本的操作和函数&#xff1a; 创建包含JSON列的表&#xff1a; 可以直接在表定义中指定某列为JSON类型。 CREATE TABLE my_table (id INT NOT NULL AUTO_INCREMENT,data JSON…

Nexus L2 L3基本配置

接口基本配置 N7K上所有端口默认处于shutdown状态; N5K上所有端口默认处于no shutdown状态(所有端口都是switchport) 默认所有接口都是三层route模式, 只有当线卡不支持三层的时候, 接口才会处于二层switchport模式 show run all | in “system default” 创建SVI口需要提前打…

HCIA-AI人工智能笔记3:数据预处理

统讲解数据预处理的核心技术体系&#xff0c;通过Python/Pandas与华为MindSpore双视角代码演示&#xff0c;结合特征工程优化实验&#xff0c;深入解析数据清洗、标准化、增强等关键环节。 一、数据预处理技术全景图 graph TD A[原始数据] --> B{数据清洗} B --> B1[缺…

G-Star 校园开发者计划·黑科大|开源第一课之 Git 入门

万事开源先修 Git。Git 是当下主流的分布式版本控制工具&#xff0c;在软件开发、文档管理等方面用处极大。它能自动记录文件改动&#xff0c;简化合并流程&#xff0c;还特别适合多人协作开发。学会 Git&#xff0c;就相当于掌握了一把通往开源世界的钥匙&#xff0c;以后参与…

MySQL错误 “duplicate entry ‘1‘ for key ‘PRIMARY‘“ 解决方案

文章目录 1. 错误原因分析2. 快速解决方法场景1:手动插入重复值场景2:自增主键冲突场景3:批量插入冲突3. 长期预防策略4. 高级排查技巧该错误通常由主键冲突引起,表示尝试插入或更新的主键值已存在于表中。以下是分步排查和解决方法: 1. 错误原因分析 主键唯一性约束:表…

WEB攻防-PHP反序列化-字符串逃逸

目录 前置知识 字符串逃逸-减少 字符串逃逸-增多 前置知识 1.PHP 在反序列化时&#xff0c;语法是以 ; 作为字段的分隔&#xff0c;以 } 作为结尾&#xff0c;在结束符}之后的任何内容不会影响反序列化的后的结果 class people{ public $namelili; public $age20; } var_du…

把生产队的大模型Grok 3 beta用来实现字帖打磨

第一个版本&#xff0c;就是简单的田字格&#xff0c;Grok 3 beta 思考了15s就得到了html前端代码&#xff0c;javascript; 然而还不完美&#xff1b; 第二个版本&#xff0c;进一步&#xff0c;通过pinyin项目给汉字加上注音&#xff0c;米字格和四线格&#xff1b;&#xff…