当前位置: 首页 > news >正文

第七篇:k8s集群使用helm3安装Prometheus Operator

安装Prometheus Operator

目前网上主要有两种安装方式,分别为:1. 使用kubectl基于manifest进行安装 2. 基于helm3进行安装。第一种方式比较繁琐,需要手动配置yaml文件,特别是需要配置pvc相关内容时,涉及到的yaml文件太多,故本文选用第二种基于helm安装的方式。
下面开始重点介绍安装流程,其实安装过程可以概括为以下几点:

  • 配置服务类型,主要是altermanager/prometheus/grafana这三个服务,如果想在浏览器访问,就需要进行服务类型的配置,默认情况使用的是ClusterIP,这样无法在浏览器中访问,这里我们使用LoadBalancer和ingress的方式配置服务,这样我们就可以使用域名和IP:Port进行访问。关于ingress与LoadBalaner的部署可以参考 第二篇:k8s之ingress-nginx-controller与metallb部署
  • 持久化存储的使用,默认安装没有配置持久化存储,默认情况是安装到部署的节点本地,这里会有数据丢失的风险,生产环境下需要配置自己的持久化存储,我这里使用的是ceph rbd作为storageclass,如果没有安装ceph csi, 可以参考我之前的文章 第三篇:k8s之容器存储接口(CSI)ceph-csi-rbd部署

配置altermanager/prometheus/grafana三个服务

服务类型配置

将这个服务的类型由ClusterIP改成LoadBalancer

分别在这三个服务对应的session下找到service项进行如下配置

prometheus:...service:...type: LoadBalancer

将grafana的服务开启并配置ingress,公司内部通过域名访问

修改grafana配置下的ingress选项,开启功能,并配置hosts

grafana:...ingress:enable: true...hosts: [monitor.prod.wuyacapital.com]

所有Pod绑定到master节点 (可选项,没有这方面的需求可以跳过)

为方便管理应用服务,将应用服务与每日作业计算任务进行区分,所有Pod均绑定到master类型的节点上,这里通过使用affinity进行配置对应的Pod.

所涉及的Pod主要包括:grafana, kube-state-metrics, prometheusOperator, prometheus, alertmanager。其中 grafana, kube-state-metrics, prometheusOperator由于没有Spec配置,所以直接放在其声明下即可,例如

grafana: # prometheusOperator/kube-state-metrics 类似...affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- master01- master02- master03...

对于 prometheus, alertmanager由于有Spec配置,所以放在各自的session下即可,例如:

prometheus: # alertmanager 对应 alertmanagerSpec, 配置类似,添加下面affinity的内容即可...prometheusSpec:...affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- master01- master02- master03...

storage配置

Prometheus在使用过程中会涉及到指标数据的存储问题,下面是Prometheus的架构图

架构

这里我们可以看到我们需要存储指标数据以方便监控系统Grafana进行读取并展示。

我们使用的持久化存储为ceph rbd存储,对应的storageclass为csi-rbd-sc, 这是我之前创建的存储类,现在可以在这直接调用,涉及到存储的部分主要有以下2处:

(1) alertmanager—>alertmanagerSpec—>storage

(2) prometheus—>prometheusSpec—>storageSpec

内容如下:

volumeClaimTemplate:spec:storageClassName: csi-rbd-scaccessModes: ["ReadWriteOnce"]resources:requests:storage: 100Gi #根据实际情况设置

配置完成后,查看完整的配置文件

启动部署脚本

helm upgrade --install prometheus --namespace monitoring --create-namespace  prometheus-community/kube-prometheus-stack -f prometheus.yaml --debug

查看所有Pod的资源信息

master01 ➜  helm git:(master) ✗ kubectl get pod -n monitoring         
NAME                                                     READY   STATUS    RESTARTS        AGE
alertmanager-prometheus-kube-prometheus-alertmanager-0   2/2     Running   1 (3h47m ago)   3h49m
prometheus-grafana-bc859db95-s2pzh                       3/3     Running   0               172m
prometheus-kube-prometheus-operator-8995df666-d7wl5      1/1     Running   0               3h49m
prometheus-kube-state-metrics-6855494647-njsc5           1/1     Running   0               166m
prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   0               3h49m
prometheus-prometheus-node-exporter-56m49                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-5b5cx                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-khzzn                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-nfj5m                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-pcjgz                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-r6r82                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-t8dsh                1/1     Running   0               3h49m

说明部署成功。

可以查看service信息,并打开浏览器查看prometheus服务http://192.168.1.192:9090, 查看所有的target是否监控成功

master01 ➜  helm git:(master) ✗ kubectl get svc -n monitoring
NAME                                      TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-operated                     ClusterIP      None             <none>        9093/TCP,9094/TCP,9094/UDP   3h50m
prometheus-grafana                        ClusterIP      10.101.246.163   <none>        80/TCP                       3h50m
prometheus-kube-prometheus-alertmanager   LoadBalancer   10.102.35.159    192.168.1.194   9093:30033/TCP               3h50m
prometheus-kube-prometheus-operator       LoadBalancer   10.101.1.10      192.168.1.193   443:30001/TCP                3h50m
prometheus-kube-prometheus-prometheus     LoadBalancer   10.106.88.156    192.168.1.192   9090:31242/TCP               3h50m
prometheus-kube-state-metrics             ClusterIP      10.109.156.237   <none>        8080/TCP                     3h50m
prometheus-operated                       ClusterIP      None             <none>        9090/TCP                     3h50m
prometheus-prometheus-node-exporter       ClusterIP      10.105.10.206    <none>        9100/TCP                     3h50m

这里可以看到所有服务均可监控。

targets无法监控的问题

注意:这里经常会遇到这样的问题,kube-controller-manager与kube-scheduler的target是Down的状态,原因是因为这两个服务无法访问,为什么无法访问?原因是因为在k8s集群创建时,这两个服务的的bind-address绑定的是127.0.0.1,所以无法通过其他服务器访问。

解决方案:分别在这三台服务器上打开 /etc/kubernetes/manifests/kube-controller-manager.yaml/etc/kubernetes/manifests/kube-scheduler.yaml,然后找到bind-address这个字段,将后面的127.0.0.1替换成0.0.0.0即可。这里无需重启对应的服务,k8s会自动读取最新的配置。改完之后过一会,就可以看到这2哥监控正常了。

参考文档:解决controller与scheduler无法访问的问题

卸载流程

helm uninstall prometheus -n monitoring
kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com
kubectl delete crd podmonitors.monitoring.coreos.com
kubectl delete crd probes.monitoring.coreos.com
kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd thanosrulers.monitoring.coreos.com

查看pvc是否需要手动删除

相关文章:

第七篇:k8s集群使用helm3安装Prometheus Operator

安装Prometheus Operator 目前网上主要有两种安装方式&#xff0c;分别为&#xff1a;1. 使用kubectl基于manifest进行安装 2. 基于helm3进行安装。第一种方式比较繁琐&#xff0c;需要手动配置yaml文件&#xff0c;特别是需要配置pvc相关内容时&#xff0c;涉及到的yaml文件太…...

Chrome 75不支持保存成mhtml的解决方法

在Chrome 75之前&#xff0c;可以设置chrome://flags -> save as mhtml来保存网页为mhtml。 升级新版&#xff0c;发现无法另存为/保存网页为MHTML了。 在网上搜索无果后&#xff0c;只得从chromium项目的commits中查找&#xff0c;原来chrome搞了个"Chrome Flag Owner…...

工程监测振弦采集仪应用于岩土工程监测案例

振弦采集仪是一种用于测量地面或岩土中振动参数的仪器&#xff0c;可以对地基、土壤和岩体的性质及其变化进行监测。在岩土工程监测中&#xff0c;振弦传感器被广泛应用于测量土体或岩体的振动情况&#xff0c;以了解地震或其他自然灾害的影响。 以下是一个振弦采集仪应用岩土工…...

配置HDFS单机版,打造数据存储的强大解决方案

目录 简介&#xff1a;步骤&#xff1a;安装java下载安装hadoop配置hadoop-env.sh配置 core-site.xml配置hdfs-site.xml初始化hdfs文件系统启动hdfs服务验证hdfs 结论&#xff1a; 简介&#xff1a; Hadoop分布式文件系统&#xff08;HDFS&#xff09;是Hadoop生态系统中的一个…...

U盘删除的文件怎么找回?4个简单方法分享!

“在u盘里不小心删除的文件到底还能不能找回来呀&#xff1f;真的好着急啊&#xff01;这个u盘对我来说真的很重要&#xff0c;怎么恢复里面的数据呢&#xff1f;请各位大佬帮帮我吧&#xff01;” 作为一个便捷的存储工具&#xff0c;u盘逐渐获得大众的青睐。在互联网时代&…...

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

形参动态内存开辟和柔性数组

//柔性数组 //定义&#xff1a;结构体最后一个成员允许是未知大小的数组 // 优点;在开辟空间时&#xff0c;连续开辟&#xff0c;便于释放空间&#xff0c;不会因多次开辟&#xff0c;导致释放空间出错 // 开辟空间时&#xff0c;节省动态开辟次数&#xff0c;节省空间&am…...

【LLM系列之指令微调】长话短说大模型指令微调的“Prompt”

1 指令微调数据集形式“花样”太多 大家有没有分析过 prompt对模型训练或者推理的影响&#xff1f;之前推理的时候&#xff0c;发现不加训练的时候prompt&#xff0c;直接输入模型性能会变差的&#xff0c;这个倒是可以理解。假如不加prompt直接训练&#xff0c;是不是测试的时…...

MacOS使用brew如何下载Nginx

首先&#xff0c;第一步切换源&#xff1a; 切换 brew.git 仓库地址&#xff1a; cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git 替换 homebrew-core.git 仓库地址: cd "$(brew --repo)/Library/Taps/home…...

linux ftp

使用ftp连接本机进行文件传输 1、下载vsftpd服务器程序 apt install vsftpd 2、使用tcp抓包 tcpdump -nt -i lo port 20 在FTP连接到本地主机&#xff08;127.0.0.1&#xff09;时&#xff0c;数据可能通过本地回环接口&#xff08;loopback interface&#xff09;传输&…...

你知道HTTP与HTTPS有什么区别吗?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、什么是HTTP&#xff1f; 二、什么是HTTPS&#xff1f; 三、HTTPS 的工作原理 1、客户端发起 HTTPS 请求 2、服务端的配置 3、…...

keil使用printf函数重定串口输出,程序卡在Reset_Handler

最近在做国产芯片GD32F103项目&#xff0c;使用printf()函数重定向USART0串口输出&#xff0c;发现程序没有运行&#xff0c;单步调试发现&#xff0c;程序卡在startup_gd32f10x.s文件的Reset_Handler处&#xff0c;记录一下解决方法。 解决办法&#xff1a; 1、引用头文件#in…...

Redis预热 雪崩 击穿 穿透

redis预热 在Redis中&#xff0c;预热是指在实际的负载之前&#xff0c;提前将数据加载到内存中&#xff0c;以便在请求到来时能够快速响应。预热可以减少冷启动时的延迟&#xff0c;并提高系统的性能。 有几种方法可以进行Redis的预热&#xff1a; 使用持久化机制&#xff1…...

Shell脚本学习-MySQL单实例和多实例启动脚本

已知MySQL多实例启动命令为&#xff1a; mysqld_safe --defaults-file/data/3306/my.cnf & 停止命令为&#xff1a; mysqladmin -uroot -pchang123 -S /data/3306/mysql.sock shutdown 请完成mysql多实例的启动脚本的编写&#xff1a; 问题分析&#xff1a; 要想写出脚…...

vue3搭建(vite+create-vue)

目录 前提条件 输入命令 对于Add an End-to-End Testing Solution nightwatch和Cypress 和 Playwright 运行 前提条件 熟悉命令行已安装 16.0 或更高版本的 Node.js &#xff08;node -v查看版本&#xff09; 输入命令 npm init vuelatest 这一指令将会安装并执行 create-…...

服务器中了360后缀勒索病毒怎么解决,360后缀勒索病毒解密数据恢复

某医药公司是一家小型企业&#xff0c;拥有自己的服务器存储重要数据和文件。某天早上&#xff0c;IT管理员发现企业服务器中了360后缀的勒索病毒&#xff0c;所有数据文件都被加密了。这个病毒的入侵让公司业务受到严重影响&#xff0c;企业立即启动了勒索病毒解密数据恢复的措…...

3000字详解:风控核心岗位及核心价值

01、信贷场景中所谓风控是什么&#xff1f; 从一个小故事说起&#xff1a; “风控是什么&#xff1f;” “你走过大桥么&#xff1f;” “桥上有栏杆么&#xff1f;” “有” “你过桥时会扶栏杆么” “一般不扶” “那栏杆是不是没必要有呢” “那还是得有啊&#xf…...

fiddler 手机抓包(含https) 完整流程

第一部分&#xff1a;下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】&#xff0c;并下载fiddler 安装包。 二.fiddler安装包下载成功后&#xff0c;将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下&#xff0c;双击文件夹中的【fidd…...

ChatGPT学python——制作自己的AI模型(一)初步了解

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…...

多赛道出海案例,亚马逊云科技为企业提供全新解决方案实现高速增长

数字化浪潮之下&#xff0c;中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”&#xff0c;中国企业实现了从低端制造出口&#xff0c;向技术创新和品牌先导的升级。为助力中国企业业务高效出海&#xff0c;亚马逊云科技于2023年6月9日在深圳大中华喜来登酒店举办…...

AudioSeal Pixel Studio代码实例:检测结果可视化图表生成脚本

AudioSeal Pixel Studio代码实例&#xff1a;检测结果可视化图表生成脚本 1. 工具概述与核心价值 AudioSeal Pixel Studio是一款基于Meta开源的AudioSeal算法构建的专业音频水印工具。它能够在保持原始音频质量的前提下&#xff0c;为音频文件嵌入几乎不可察觉的数字水印&…...

深度解析LSPosed框架:从Hook原理到模块开发的完整实战指南

深度解析LSPosed框架&#xff1a;从Hook原理到模块开发的完整实战指南 【免费下载链接】LSPosed_mod My changes to LSPosed 项目地址: https://gitcode.com/GitHub_Trending/ls/LSPosed_mod LSPosed框架作为Android系统Hook技术的现代实现&#xff0c;为开发者提供了强…...

PFC-FLAC3D耦合学习案例解析

pfc-flac3D耦合学习案例 !岩土工程师的桌面摆满了数值模拟手册 在边坡监测现场见到裂缝的那一刻&#xff0c;我突然意识到离散元与连续介质耦合不再是教科书里的概念——PFC的颗粒崩落和FLAC的应力云图必须握手言和。今天咱们用Python当翻译官&#xff0c;看看这对冤家怎么在滑…...

手把手教你用Gen6D制作个人数据集:从视频采集到6D姿态估计全流程

从零构建Gen6D个人数据集&#xff1a;6D姿态估计实战指南 引言&#xff1a;为什么需要自定义6D姿态数据集&#xff1f; 在计算机视觉领域&#xff0c;6D姿态估计(6D Pose Estimation)正成为增强现实、机器人抓取和自动驾驶等应用的核心技术。与传统的2D检测不同&#xff0c;6…...

5大突破解决Android固件提取难题:面向开发者与技术爱好者的全能工具指南

5大突破解决Android固件提取难题&#xff1a;面向开发者与技术爱好者的全能工具指南 【免费下载链接】Firmware_extractor 项目地址: https://gitcode.com/gh_mirrors/fi/Firmware_extractor 问题引入&#xff1a;Android固件提取的碎片化困境 Android生态系统的开放性…...

利用快马平台快速构建openclaw网页抓取原型,十分钟验证技术方案

最近在做一个数据采集相关的项目&#xff0c;需要快速验证网页抓取方案的可行性。经过调研发现openclaw这个Python库很适合做轻量级的网页抓取&#xff0c;但搭建完整的开发环境太费时间。后来在InsCode(快马)平台上尝试了一下&#xff0c;没想到十分钟就搞定了原型验证。这里分…...

3分钟终极解决方案:快速解除Cursor试用限制的完整指南

3分钟终极解决方案&#xff1a;快速解除Cursor试用限制的完整指南 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We …...

用ESP32-S3给OV2640摄像头上‘网课’:手把手实现低延迟MJPEG监控系统

基于ESP32-S3与OV2640构建低延迟MJPEG监控系统的工程实践 在物联网和边缘计算领域&#xff0c;实时视频监控系统的需求日益增长。本文将深入探讨如何利用ESP32-S3微控制器和OV2640摄像头模组构建一个完整的低延迟MJPEG监控系统&#xff0c;从硬件连接到软件优化&#xff0c;全…...

MMA7660FC三轴加速度计嵌入式驱动库设计与应用

1. 项目概述Grove_3-Axis_Digital_Accelerometer_MMA7660FC_Library 是专为 Seeed Studio Grove 系列模块中 MMA7660FC 三轴数字加速度传感器设计的嵌入式驱动库。该库面向基于 ARM Cortex-M 架构&#xff08;如 STM32F0/F1/F4/L0/L4 系列&#xff09;的微控制器平台&#xff0…...

Qwen3-4B-Thinking效果展示:递归算法设计、时间复杂度分析与优化建议生成实例

Qwen3-4B-Thinking效果展示&#xff1a;递归算法设计、时间复杂度分析与优化建议生成实例 1. 模型效果惊艳展示&#xff1a;一个会“思考”的代码助手 最近在测试一个特别的文本生成模型——Qwen3-4B-Thinking。这个名字听起来就很有意思&#xff0c;“Thinking”这个词让我很…...