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

【Minikube Prometheus】基于Prometheus Grafana监控由Minikube创建的K8S集群

文章目录

    • 1. 系统信息参数说明
    • 2. Docker安装
    • 3. minikube安装
    • 4. kubectl安装
    • 5. Helm安装
    • 6. 启动Kubernetes集群v1.28.3
    • 7. 使用helm安装Prometheus
    • 8. 使用helm安装Grafana
    • 9. Grafana的Dashboard设定
    • 10. 设定Prometheus数据源
    • 11. 导入Kubernetes Dashboard
    • 12. 实验过程中的常见问题
    • 13. 参考链接

1. 系统信息参数说明

[root@minikube ~]# uname -a
Linux minikube 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 17:09:15 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux[root@minikube ~]# hostnamectl Static hostname: minikubeIcon name: computer-vmChassis: vm 🖴Machine ID: 8f112fe303914f1e8e27c6b68d205117Boot ID: 75046d09558f47d9a823fff033cb1fe1Virtualization: vmware
Operating System: Rocky Linux 9.2 (Blue Onyx)       CPE OS Name: cpe:/o:rocky:rocky:9::baseosKernel: Linux 5.14.0-284.11.1.el9_2.x86_64Architecture: x86-64Hardware Vendor: VMware, Inc.Hardware Model: VMware Virtual Platform
Firmware Version: 6.00[root@minikube ~]# free -gtotal        used        free      shared  buff/cache   available
Mem:               7           2           1           0           4           5
Swap:              0           0           0
[root@minikube ~]# lscpu 

2. Docker安装

# 移除旧的docker
[root@minikube ~]# sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 安装第三方依赖库
[root@minikube ~]# sudo yum install -y yum-utils# 添加Docker-ce仓库
[root@minikube ~]# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装docker相关安装包
[root@minikube ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 启动docker服务
[root@minikube ~]# sudo systemctl start docker

3. minikube安装

[root@minikube ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm[root@minikube ~]# sudo rpm -Uvh minikube-latest.x86_64.rpm

4. kubectl安装

[root@minikube ~]# yum install -y kubectl

5. Helm安装

[root@minikube ~]# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3[root@minikube ~]# chmod 700 get_helm.sh[root@minikube ~]# ./get_helm.sh

6. 启动Kubernetes集群v1.28.3

[root@minikube ~]# minikube start --kubernetes-version=v1.28.3 --memory=6g
😄  Rocky 9.2 上的 minikube v1.32.0
❗  当提供 --force 参数时,minikube 将跳过各种验证,这可能会导致意外行为
✨  自动选择 docker 驱动。其他选项:none, ssh
🛑  The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
💡  如果您在VM中运行 minikube,请考虑使用 --driver=none:
📘    https://minikube.sigs.k8s.io/docs/reference/drivers/none/
📌  使用具有 root 权限的 Docker 驱动程序
👍  正在集群 minikube 中启动控制平面节点 minikube
🚜  正在拉取基础镜像 ...
💾  正在下载 Kubernetes v1.28.3 的预加载文件...> preloaded-images-k8s-v18-v1...:  403.35 MiB / 403.35 MiB  100.00% 1.60 Mi> gcr.io/k8s-minikube/kicbase...:  453.90 MiB / 453.90 MiB  100.00% 1.70 Mi
🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
🐳  正在 Docker 24.0.7 中准备 Kubernetes v1.28.3…▪ 正在生成证书和密钥...▪ 正在启动控制平面...▪ 配置 RBAC 规则 ...
🔗  配置 bridge CNI (Container Networking Interface) ...
🔎  正在验证 Kubernetes 组件...▪ 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
🌟  启用插件: storage-provisioner, default-storageclass
🏄  完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间# 查看集群状态
[root@minikube ~]# minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

7. 使用helm安装Prometheus

[root@minikube ~]# kubectl create ns monitoring
namespace/monitoring created[root@minikube ~]# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
"prometheus-community" has been added to your repositories[root@minikube ~]# helm repo list
NAME                    URL                                               
prometheus-community    https://prometheus-community.github.io/helm-charts[root@minikube ~]# helm search repo prometheus-community                                     [root@minikube ~]# helm install prometheus prometheus-community/prometheus[root@minikube ~]# kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-np

image-20231227114607828

通过运行以下命令来检查状态

[root@minikube ~]# kubectl get pods -l app.kubernetes.io/instance=prometheus
NAME                                                 READY   STATUS    RESTARTS   AGE
prometheus-alertmanager-0                            1/1     Running   0          3h15m
prometheus-kube-state-metrics-6b464f5b88-8p49t       1/1     Running   0          3h15m
prometheus-prometheus-node-exporter-b6bzv            1/1     Running   0          3h15m
prometheus-prometheus-pushgateway-7857c44f49-zjddf   1/1     Running   0          3h15m
prometheus-server-6b68fbd54b-df64z                   2/2     Running   0          3h15m

image-20231227163815109

由于使用的是 Minikube,第二个命令prometheus-server使用NodePort. 这样,当 Pod 准备就绪时,就可以轻松访问 Prometheus Web 界面:

minikube service prometheus-server-np

image-20231227164031136

[root@minikube ~]# kubectl port-forward svc/prometheus-server-np 30944:80 --address='0.0.0.0'
Forwarding from 0.0.0.0:30944 -> 9090

http://192.168.20.20:30944/targets

image-20231227170950212

8. 使用helm安装Grafana

# 将存储库添加到 helm 配置中
[root@minikube ~]# helm repo add grafana https://grafana.github.io/helm-charts
"grafana" has been added to your repositories[root@minikube ~]# helm repo list
NAME                    URL                                               
prometheus-community    https://prometheus-community.github.io/helm-charts
grafana                 https://grafana.github.io/helm-charts             [root@minikube ~]# helm search repo grafana# 使用提供的图表安装 Grafana
[root@minikube ~]# helm install grafana grafana/grafana
[root@minikube ~]# kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-np

由于使用的是 Minikube,为了轻松访问 Grafana 的 Web 界面,将该服务公开为NodePort

注意: Grafana 默认受密码保护,为了检索admin用户密码,我们可以运行以下命令:

kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
wYISKh0bkkLuQm0TOEOUoVx4M1AW6q70JlOBABS0

现在可以使用检索到的用户和密码加载 Grafana Web 界面

[root@minikube ~]# kubectl port-forward svc/grafana-np 30264:80 --address='0.0.0.0'
Forwarding from 0.0.0.0:30264 -> 3000

image-20231227171310910

9. Grafana的Dashboard设定

root@minikube ~]# kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
uJEkCoHDGjfkUdvOP8i3djaIvPOggK2tMZcdPKWa[root@minikube ~]# export POD_NAME=$(kubectl get pods --namespace monitoring -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")[root@minikube ~]# kubectl --namespace monitoring port-forward $POD_NAME 3000
Forwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000

10. 设定Prometheus数据源

image-20231227171417268

image-20231227171455029

11. 导入Kubernetes Dashboard

image-20231227171547410

12. 实验过程中的常见问题

Grafana 忘记登陆密码 重置密码

[root@minikube ~]# kubectl get pods -A[root@minikube ~]# kubectl exec -it grafana-5657d4fc47-jkdx6 -n default sh/usr/share/grafana $ grafana-cli admin reset-admin-password 123456Admin password changed successfully ✔

image-20231227161502104

13. 参考链接

1️⃣https://blog.marcnuri.com/prometheus-grafana-setup-minikube

2️⃣Local MacのMinikubeでPrometheusとGrafana

3️⃣Minikube 安装和简单使用 - 江湖小小白 - 博客园 (cnblogs.com)

4️⃣grafana 忘记登陆密码 重置密码

5️⃣https://github.com/prometheus-operator/kube-prometheus#compatibility

6️⃣https://yuya-hirooka.hatenablog.com/entry/2021/03/30/202342

7️⃣minikube start | minikube

相关文章:

【Minikube Prometheus】基于Prometheus Grafana监控由Minikube创建的K8S集群

文章目录 1. 系统信息参数说明2. Docker安装3. minikube安装4. kubectl安装5. Helm安装6. 启动Kubernetes集群v1.28.37. 使用helm安装Prometheus8. 使用helm安装Grafana9. Grafana的Dashboard设定10. 设定Prometheus数据源11. 导入Kubernetes Dashboard12. 实验过程中的常见问题…...

无需翻墙|Stable Diffusion WebUI 安装|AI绘画

前言 最近终于有机会从围墙里往外看,了解到外面的世界已经有了天翻地覆的变化,感叹万千,笔者在本地mac,windows,linux,docker部署了不下20遍后,整理出来的linux极简避坑安装方案,供…...

在FC中手工创建虚拟机模板

1、Linux去除个性化信息 (1)编辑网卡配置文件,只保留以下内容(以RHEL 7为例) (2)清除主机密钥信息(开机会自动生成) (3)清除Machine ID&#xff…...

OpenSSL provider

提供者 标准提供者默认提供者传统提供者FIPS 提供者基本提供者空提供者加载提供者 标准提供者 提供者是算法实现的容器。每当通过高级别 API 使用加密算法时,都会选择一个提供者。实际上是由该提供者实现执行所需的工作。OpenSSL 自带了五个提供者。在未来&#…...

pandas处理双周数据

处理文件题头格式 部门名称 年度名称 季节名称 商品名称 商品代码 品牌名称 品类名称 颜色名称 商店名称 0M 1L 1XL 27 28 29 2XL 30 31 32 33 3XL 4XL 5XL 6XL S 均1.导入包 导入源 pip install openpyxl -i https://pypi.doubanio.com/simple pip install pandas -i https…...

2023结婚成家,2024借势起飞

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…...

linux SHELL语句

shell编程 shell编程 一、初识shell 程序 语言 编程语言 自然语言 汉语 英语 计算机语言 c语言cjava php python go shell 编译型语言 c c java解释型语言 php python bash (不能闭源,开发难度低) 编译型语言:运行编译型语言是相对于解释型语言存在的&#xff…...

音频修复和增强软件:iZotope RX 10 (Win/Mac)中文汉化版

iZotope RX 是一款专业的音频修复和增强软件,一直是电影和电视节目中使用的行业标准音频修复工具,iZotope能够帮助用户对音频进行制作、后期合成处理、混音以及对损坏的音频进行修复,再解锁更多功能之后还能够对电影、游戏、电视之中的音频进…...

复试 || 就业day03(2023.12.29)算法篇

文章目录 前言同构字符串存在重复元素有效的字母异位词丢失的数字单词规律 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫文章题目大多来自于 leetcode,当然也可能来自洛谷或其他刷题平台 💫欢迎大…...

处理urllib.request.urlopen报错UnicodeEncodeError:‘ascii‘

参考:[Python3填坑之旅]一urllib模块网页爬虫访问中文网址出错 目录 一、报错内容 二、报错截图 三、解决方法 四、实例代码 五、运行截图 六、其他UnicodeEncodeError: ascii codec 问题 一、报错内容 UnicodeEncodeError: ascii codec cant encode charac…...

数据结构模拟实现LinkedList双向不循环链表

目录 一、双向不循环链表的概念 二、链表的接口 三、链表的方法实现 (1)display方法 (2)size方法 (3)contains方法 (4)addFirst方法 (5)addLast方法 …...

性能优化-如何提高cache命中率

本文主要介绍性能优化领域常见的cache的命中率问题,旨在全面的介绍提高cache命中率的方法,以供大家编写出性能友好的代码,并且可以应对性能优化领域的面试问题。 🎬个人简介:一个全栈工程师的升级之路! &am…...

分布式【4. 什么是 CAP?】

什么是 CAP? C 代表 Consistency,一致性,是指所有节点在同一时刻的数据是相同的,即更新操作执行结束并响应用户完成后,所有节点存储的数据会保持相同。 A 代表 Availability,可用性,是指系统提…...

<软考高项备考>《论文专题 - 39采购管理(3) 》

3 过程2-实施采购 3.1 问题 4W1H过程做什么获取卖方应答、选择卖方并授予合同的过程作用:选定合格卖方并签署关于货物或服务交付的法律协议。本过程的最后成果是签订的协议,包括正式合同。为什么做实际进行采购谁来做组织中的职能部门或项目经理什么时…...

Java在SpringCloud中自定义Gateway负载均衡策略

Java在SpringCloud中自定义Gateway负载均衡策略 一、前言 spring-cloud-starter-netflix-ribbon已经不再更新了,最新版本是2.2.10.RELEASE,最后更新时间是2021年11月18日,详细信息可以看maven官方仓库:org.springframework.clou…...

前端 js 基础(1)

js 结果输出 &#xff08;点击按钮修改文字 &#xff09; <!DOCTYPE html> <html> <head></head><body><h2>Head 中的 JavaScript</h2><p id"demo">一个段落。</p><button type"button" onclic…...

Android : 使用GestureOverlayView进行手势识别—简单应用

示例图&#xff1a; GestureOverlayView介绍&#xff1a; GestureOverlayView 是 Android 开发中用于识别和显示手势的视图组件。它允许用户在屏幕上绘制手势&#xff0c;并且应用程序可以检测和响应这些手势。以下是关于 GestureOverlayView 的主要特点&#xff1a; 手势识别…...

API集群负载统计 (100%用例)C卷 (JavaPythonNode.jsC语言C++)

某个产品的RESTful API集合部署在服务器集群的多个节点上, 近期对客户端访问日志进行了采集,需要统计各个API的访问频次, 根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。 RESTful API的由多个层级构成,层级之间使用/连接,如/A/B/C/D这个地址…...

小梅哥Xilinx FPGA学习笔记18——专用时钟电路 PLL与时钟向导 IP

目录 一&#xff1a;IP核简介&#xff08;具体可参考野火FPGA文档&#xff09; 二&#xff1a; 章节导读 三&#xff1a;PLL电路原理 3.1 PLL基本实现框图 3.2 PLL倍频实现 3.3 PLL分频实现 四: 基于 PLL 的多时钟 LED 驱动设计 4.1 配置 Clocking Wizard 核 4.2 led …...

低代码平台在金融银行中的应用场景

随着数字化转型的推进&#xff0c;商业银行越来越重视技术在业务发展中的作用。在这个背景下&#xff0c;白码低代码平台作为一种新型的开发方式&#xff0c;正逐渐受到广大商业银行的关注和应用。白码低代码平台能够快速构建各类应用程序&#xff0c;提高开发效率&#xff0c;…...

什么是GEO优化(生成式引擎优化)?一文讲透

# 什么是GEO优化&#xff08;生成式引擎优化&#xff09;&#xff1f;一文讲透GEO优化即生成式引擎优化&#xff0c;是面向豆包等AI大模型平台的新型营销优化方式&#xff0c;是AI时代企业抢占流量新入口的核心营销手段。沈阳锦恒智联信息科技有限公司是辽宁本地专业的GEO优化服…...

深学邦内容语料价值(腾讯旗下AI助手元宝)分析:A-(优秀级垂直信源)

评估机构&#xff1a;元宝&#xff08;由腾讯出品&#xff09; 评估方式&#xff1a;基于腾讯知识库语料筛选模型与垂直领域可信度评估体系 报告日期&#xff1a;2026年3月 一、评估背景与核心逻辑 作为腾讯旗下的通用型AI助手&#xff0c;我的知识库覆盖全领域文本数据。 …...

Nginx 安装部署

Yum在线安装部署 Nginx- 记录常用服务的版本&#xff1a;1.22.1- 选用稳定版本&#xff0c;上一个稳定版本1&#xff09;配置 yum 源[rootweb01 ~]# vim /etc/yum.repos.d/nginx.repo[nginx-stable]namenginx stable repobaseurlhttp://nginx.org/packages/centos/$releasever/…...

DriveVLA-W0:世界模型在自动驾驶中放大数据规模定律【在动作信号的基础上增加视觉自监督信号可增强VLA效果(扩散世界模型、自回归世界模型效果都不错,图4显示扩散策略稍好一些)】

第001/22页(英文原文) DRIVEVLA-W0: WORLD MODELS AMPLIFY DATA SCALING LAW IN AUTONOMOUS DRIVING Yingyan Li1∗ Shuyao Shang1∗ Weisong Liu1∗ Bing Zhan1∗ Haochen Wang1∗ Yuqi Wang1 Yuntao Chen1 Xiaoman Wang2 Yasong An2 Chufeng Tang2 Lu Hou2 Lue Fan1B Zh…...

ROS2时间处理避坑指南:从rclcpp::Time到header.stamp的5种转换方法

ROS2时间处理避坑指南&#xff1a;从rclcpp::Time到header.stamp的5种转换方法 在ROS2开发中&#xff0c;时间戳处理看似简单却暗藏玄机。许多开发者在将rclcpp::Time转换为header.stamp时踩过坑——从版本兼容性问题到精度丢失&#xff0c;再到线程安全陷阱。本文将带您深入理…...

RK3566 Android11 录音难题:手把手教你搞定ES7202 PDM ADC配置(附驱动修复)

RK3566 Android11音频驱动实战&#xff1a;ES7202 PDM ADC配置与异常修复全解析 当RK3566遇上ES7202这颗纯ADC芯片&#xff0c;不少开发者会在Android11音频子系统中遭遇"无声惊魂"。不同于常规I2S架构&#xff0c;PDM直连方案在驱动层埋着几个关键"暗坑"。…...

3步掌握BilibiliDown:从视频下载到音频提取的完整攻略

3步掌握BilibiliDown&#xff1a;从视频下载到音频提取的完整攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/b…...

jquery-match-height完全教程:5分钟学会创建完美等高元素

jquery-match-height完全教程&#xff1a;5分钟学会创建完美等高元素 【免费下载链接】jquery-match-height a responsive equal heights plugin 项目地址: https://gitcode.com/gh_mirrors/jq/jquery-match-height jquery-match-height是一款强大的响应式等高元素插件&…...

Atmosphere-stable开源项目实战指南:从基础到进阶的完整路径

Atmosphere-stable开源项目实战指南&#xff1a;从基础到进阶的完整路径 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 一、认知基础&#xff1a;如何理解Atmosphere自定义固件&#xff1…...

开发者跨界金融科技:机遇与技能图谱

一、金融科技浪潮下的测试新机遇1.1 行业爆发式增长催生人才缺口全球金融数智化进程加速&#xff0c;银行业持续加码科技投入。据公开数据显示&#xff0c;2024年仅国有六大行金融科技投入超1250亿元&#xff0c;同比增长约2%。业务快速迭代与用户体验升级需求&#xff0c;推动…...