k8s 离线安装 kube-prometheus-stack

配置共享存储

Prometheus 需要配置持久化存储,防止数据丢失

服务端

服务端安装 NFS 服务

sudo apt install nfs-kernel-server

创建共享目录,在服务器端创建 /nfs 目录。

mkdir /nfs
chmod -R 777 /nfs # 设置文件权限

nfs目录下只给了默认权限,不设置权限,会报错

GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied

编写配置文件

vim /etc/exports
#[任意主机所有权限]
/nfs   *(rw,sync,insecure,no_subtree_check,no_root_squash)

重启 NFS 服务

sudo service nfs-kernel-server restart

常用命令工具

#在安装 NFS 服务器时,已包含常用的命令行工具,无需额外安装
#显示已经 mount 到本机 NFS 目录的客户端机器
sudo showmount -e localhost
#将配置文件中的目录全部重新 export 一次,无需重启服务
sudo exportfs -rv
#查看 NFS 的运行状态
sudo nfsstat
#查看 rpc 执行信息,可以用于检测 rpc 运行情况
sudo rpcinfo

客户端

需要连接服务端的节点,例如 node 节点

安装客户端工具

sudo apt install nfs-common

查看 NFS 服务器上的共享目录

#显示指定的 NFS 服务器(假设 IP 地址为 192.168.58.29)上 export 出来的目录
sudo showmount -e 192.168.58.29

创建本地挂载目录

sudo mkdir -p /nfs

挂载共享目录

#假设 NFS 服务器 IP为 192.168.58.29,可以如下设置挂载  
sudo mount -t nfs 192.168.58.29:/nfs /nfs

开始安装 Prometheus

下载 Prometheus 压缩包

releases 中,找到自己想安装的版本:https://github.com/prometheus-community/helm-charts/releases/

wget https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-72.3.1/kube-prometheus-stack-72.3.1.tgz

配置持久化卷

创建 prometheus-storage-class.yaml 文件

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: prometheus-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

创建 prometheus-pv.yaml 文件

apiVersion: v1
kind: PersistentVolume
metadata:name: prometheus-pv
spec:capacity:storage: 40GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: prometheus-storagenfs:path: /nfs/prometheusserver: 192.168.58.29
---
apiVersion: v1
kind: PersistentVolume
metadata:name: alertmanager-pv
spec:capacity:storage: 2GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: prometheus-storagenfs:path: /nfs/alertmanagerserver: 192.168.58.29
---
apiVersion: v1
kind: PersistentVolume
metadata:name: grafana-pv
spec:capacity:storage: 8GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: prometheus-storagenfs:path: /nfs/grafanaserver: 192.168.58.29

执行安装 StorageClasspv

kubectl apply -f prometheus-storage-class.yaml
kubectl apply -f prometheus-pv.yaml

验证安装

kubectl get StorageClass
kubectl get pv

配置 Prometheus 自定义配置

创建 values.yaml 文件,启用持久化存储并指定 StorageClass

prometheus:prometheusSpec:storageSpec:volumeClaimTemplate:spec:storageClassName: prometheus-storageaccessModes: ["ReadWriteOnce"]resources:requests:storage: 40Gi
alertmanager:alertmanagerSpec:storage:volumeClaimTemplate:spec:storageClassName: prometheus-storageaccessModes: ["ReadWriteOnce"]resources:requests:storage: 2Gi
grafana:persistence:enabled: truestorageClassName: prometheus-storageaccessModes: ["ReadWriteOnce"]size: 8Gi

创建共享存储文件夹

mkdir -p /nfs/alertmanager /nfs/grafana /nfs/prometheuschmod -R 777 /nfs

helm 离线安装

helm install prometheus ./kube-prometheus-stack-72.3.1.tgz \--namespace monitoring \--create-namespace \-f values.yaml

安装完成,输出日志:

NAME: prometheus
LAST DEPLOYED: Wed May 14 15:41:31 2025
NAMESPACE: monitoring
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running:kubectl --namespace monitoring get pods -l "release=prometheus"Get Grafana 'admin' user password by running:kubectl --namespace monitoring get secrets prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echoAccess Grafana local instance:export POD_NAME=$(kubectl --namespace monitoring get pod -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=prometheus" -oname)kubectl --namespace monitoring port-forward $POD_NAME 3000Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.

卸载 Prometheus

helm uninstall prometheus --namespace monitoring

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

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

相关文章

ceph osd 磁盘分区对齐

分区对齐可以提高读写速度的原理是什么 分区对齐可以提高磁盘读写速度的原理主要在于 磁盘的物理扇区大小与操作系统发起的读写请求之间是否对齐。如果不对齐,每次读写操作可能会跨越多个物理扇区,造成额外的 I/O 操作,从而降低性能。 🔧 原理详解 1. 物理扇区(Physica…

Simon J.D. Prince《Understanding Deep Learning》

学习神经网络和深度学习推荐这本书,这本书站位非常高,且很多问题都深入剖析了,甩其他同类书籍几条街。 多数书,不深度分析、没有知识体系,知识点零散、章节之间孤立。还有一些人Tian所谓的权威,醒醒吧。 …

【泛微系统】后端开发Action常用方法

后端开发Action常用方法 代码实例经验分享:代码实例 经验分享: 本文分享了后端开发中处理工作流Action的常用方法,主要包含以下内容:1) 获取工作流基础信息,如流程ID、节点ID、表单ID等;2) 操作请求信息,包括请求紧急程度、操作类型、用户信息等;3) 表单数据处理,展示…

SSH的screen方法

创建一个screen窗口,(在需要运行程序的文件夹内)使用 screen -S name 命令,其中 name 是窗口的名字。 在窗口中执行需要的命令。 当需要临时离开时,使用快捷键 ctrlA D 回来时,使用 screen -r name 恢复…

无法访问org.springframework.boot.SpringApplication

无法访问org.springframework.boot.SpringApplication 检查springboot和jdk的版本是否适配检查jdk的设置是否统一 主要检查下面几处地方

洛谷 P1800 software(DP+二分)【提高+/省选−】

题目链接 https://www.luogu.com.cn/problem/P1800 思路 对于大于等于最优解的天数,一定能使公司交付软件。对于小于最优解的天数,一定无法使公司交付软件。所以考虑二分答案 x x x。 定义 f [ i ] [ j ] f[i][j] f[i][j]表示前 i i i个人做了 j j j…

C++性能测试工具——sysprof的使用

一、sysprof sysprof相对于前面的一些性能测试工具来说,要简单不少。特别是其图形界面的操作,非常容易上手,它还支持分析文件的保存和导入功能,这是一个非常不错的功能。做为一款系统性能测试工具,它支持多种硬件平台…

redis数据持久化和配置-15(备份和还原 Redis 数据)

备份和还原 Redis 数据 备份和恢复数据是管理任何数据库系统(包括 Redis)的关键方面。数据丢失可能是由于硬件故障、软件错误、意外删除甚至恶意攻击而发生的。因此,拥有强大的备份和恢复策略对于确保数据持久性和业务连续性至关重要。本课将…

【上位机——WPF】布局控件

布局控件 常用布局控件Panel基类Grid(网格)UniformGrid(均匀分布)StackPanel(堆积面板)WrapPanel(换行面板)DockerPanel(停靠面板)Canvas(画布布局)Border(边框)GridSplitter(分割窗口)常用布局控件 Grid:网格,根据自定义行和列来设置控件的布局StackPanel:栈式面板,包含的…

打卡Day33

简单的神经网络 数据的准备 # 仍然用4特征,3分类的鸢尾花数据集作为我们今天的数据集 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split import numpy as np# 加载鸢尾花数据集 iris load_iris() X iris.data # …

python开发环境管理和包管理

在 Python 开发中,环境管理 和 包管理 是两个非常重要的概念。它们帮助开发者: 这里写目录标题 一、什么是 Python 环境管理?二、什么是 Python 包管理?三、常见文件说明(用于包管理和环境配置)四、典型流程…

Mybatis面向接口编程

添加与Mapper接口的映射 <!--UserMapper.xml--> <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> …

GMP模型入门

go的并发实现采用的是M:N的线程模型&#xff0c;落地就是gmp模型。 M:N模型如下图&#xff1a; gmp模型如下图&#xff1a; --- Go 的 GMP 模型是其 高效并发调度机制的核心。GMP 代表&#xff1a; G&#xff1a;Goroutine&#xff08;用户态线程&#xff09; M&#xff1a;…

达梦数据库-报错-01-[-3205]:全文索引词库加载出错

目录 一、环境信息 二、说点什么 三、模拟实验 1、前台启动数据库 2、重建全文索引报错 3、日志信息 4、查找SYSWORD.UTF8.LIB 5、想一想加做一做 6、重启数据库 7、重建全文索引 8、总结 一、环境信息 名称值CPU12th Gen Intel(R) Core(TM) i7-12700H操作系统CentO…

经典密码学和现代密码学的结构及其主要区别(1)维吉尼亚密码—附py代码

Vigenre cipher 维吉尼亚密码 维吉尼亚密码由布莱斯德维吉尼亚在 16 世纪发明&#xff0c;是凯撒密码的一个更复杂的扩展。它是一种多字母替换密码&#xff0c;使用一个关键字来确定明文中不同字母的多个移位值。 与凯撒密码不同&#xff0c;凯撒密码对所有字母都有固定的偏移…

Ubuntu部署私有Gitlab

这个东西安装其实挺简单的&#xff0c;但是因为我这边迁移了数据目录和使用自己安装的 nginx 代理还是踩了几个坑&#xff0c;所以大家可以注意下 先看下安装 # 先安装必要组件 sudo apt update sudo apt install -y curl openssh-server ca-certificates tzdata perl# 添加gi…

【JVM 02-JVM内存结构之-程序计数器】

程序计数器 笔记记录 1. 定义2. 作用3. 特点4. 拓展理解4.1 PC寄存器存储字节码指令地址有什么用&#xff1f;4.2 PC寄存器为什么被设定为线程私有的&#xff1f;4.3 为什么执行native方法时&#xff0c;是undefined&#xff1f; 学习资料来源-b站黑马JVM& 尚硅谷JVM精讲与…

【node.js】数据库与存储

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. 数据库概述1.1 数据库在Node.js中的作用1.2 Node.js支持的数据库类型 2. 关系型数据库集成2.1 MySQL与Node.js2.1.1 安装MySQL驱动2.1.2 建立连接2.1.3 执行CRUD操作 2.2 PostgreSQL与Node.js2.2.1 安装pg驱…

Windows10和Ubuntu24.04安装Dify

1、win10上安装docker不顺利 参考&#xff1a;Dify的安装_dify安装-CSDN博客等资料&#xff0c;Dify依赖Docker运行&#xff0c;在Win10上安装Docker&#xff0c;先安装wsl。在PowerShell(管理员)中输入&#xff1a; wsl --install 或显示“找不到指定文件”&#xff0c;或显示…

电网绝缘子及破损、闪络缺陷YOLO数据集

概述 电网绝缘子及破损、闪络缺陷YOLO数据集​​&#xff0c;专为输电线路缺陷检测任务设计&#xff0c;可帮助开发者快速构建智能化识别模型。 主要内容 ​​数据集规模​​ 训练集&#xff1a;2004张标注图像验证集&#xff1a;907张标注图像所有数据均经过严格筛选与标注&…