如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 3

在本教程的前两部分,我们分别了解和学习了Prometheus 和 Grafana 的基本概念和使用的前提条件,以及使用 Helm 在 Kubernetes 上安装 Prometheus。

在今天的教程中,我们将为你介绍以下内容:

  • 安装 Grafana;
  • 集成 Prometheus 和 Grafana,Grafana 将使用 Prometheus 作为数据源;
  • 使用 Grafana 创建用于监控和观察 Kubernetes 集群的控制面板。

安装 Grafana

安装时,我们遵循与安装 Prometheus 相同的步骤:

搜索 Grafana Helm Chart

要搜索 Prometheus Helm Chart,请运行以下命令:

helm search hub grafana

您还可以访问 ArtifactHub 存储库并搜索官方 Grafana Helm Chart,如下图所示:

image.png

要获取此 Grafana Helm Chart,请运行以下命令:

helm repo add grafana https://grafana.github.io/helm-charts 
helm repo update

输出结果:

image.png

在 Kubernetes 集群上安装 Grafana Helm Chart

运行此 helm install 命令:

helm install grafana grafana/grafana

输出结果:

image.png

现在,我们已经在 Kubernetes 集群上安装了 Grafana。我们可以通过端口 80 访问 Grafana 服务器。下一步是访问并启动 Grafan 应用程序。您将使用 Grafana 的 Kubernetes 服务访问该应用程序。要获取 Grafana 的所有 Kubernetes 服务,请运行以下命令:

kubectl get service

输出结果:

image.png

我们将使用 grafana Kubernetes 服务来访问 Grafana 应用程序。grafana Kubernetes 服务也是 ClusterIP 类型。您只能从 Kubernetes 集群内部访问它。我们需要公开这个 Kubernetes 服务,以便在 Kubernetes 集群外部访问它。

公开 grafana Kubernetes 服务

kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-ext

此命令会将 ClusterIP 类型转换为 NodePort 类型。这样grafana 可以通过端口 3000 在 Kubernetes 集群外部访问。现在我们已经公开了grafana Kubernetes 服务。让我们使用以下命令访问 grafana 应用程序:

minikube service grafana-ext

该命令生成以下 URL:

image.png

URL 可能需要一些时间才能可用。您需要在浏览器上重试几次,直到使用此 URL 访问 Grafana Kubernetes 应用程序。您还需要保持终端打开并运行命令,以便继续访问服务。

image.png

上图显示的是 Grafana 登录页面。要获取 admin 的密码,请在新终端上运行以下命令。

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

注意:您需要打开一个新终端来运行此过程,以便 Grafana 保持运行。

登录 Grafana

要登录 Grafana,请输入 admin 作为用户名和生成的密码。它将启动 Welcome to Grafana 主页,如下所示:

image.png

要将 Prometheus 添加为数据源,请按照以下步骤操作:

1. 在欢迎页面上,单击 Add your first data source :

image.png

2. 选择 Prometheus 作为数据源:

image.png

3. 然后,添加运行 Prometheus 应用程序的 URL。这是我们之前运行 minikube service prometheus-server-ext 时显示的第一个 URL(集群内部)。

image.png

4. 点击 "Save & test "保存更改。

这样,您就完成了在 Kubernetes 上将 Prometheus 和 Grafana 与 Helm 集成的工作。

最后一步,是创建 Grafana 控制面板。这将帮助我们可视化 Kubernetes 集群指标。

Grafana 控制面板

如前所述,您可以选择从头开始创建控制面板。您还可以导入 Grafana 已经提供模板。在本节中,我们将导入一个 Grafana Dashborad。

要导入 Grafana 控制面板,请按照以下步骤操作:

  • 从 Grafana 公共控制面板库中获取 Grafana 控制面板 ID

image.png

  • 在此网页上,搜索 Kubernetes:

image.png

  • 滚动直到找到 Kubernetes 集群监控(通过 Prometheus)控制面板:

image.png

  • 选择控制面板并复制控制面板 ID:

image.png

  • 回到Grafana,点击左上角Home:

image.png

  • 在菜单上,单击 Dashboards :

image.png

  • 单击 New :

image.png

屏幕上会显示三个选项: New Dashboard , New Folder 和Import 。

  • 单击 Import

image.png

  • 添加 Grafana ID:添加已复制的 Grafana ID,然后单击 Load 。Grafana ID 是 315。

image.png

  • 选择 Promethues 数据源并单击 Import :

image.png

image.png

  • 它将启动如下所示的控制面板:

image.png

image.png

您可以使用此控制面板来监视和观察 Kubernetes 集群指标。它显示以下 Kubernetes 集群指标:

  • 网络 I/O 压力
  • 集群 CPU 使用率
  • 集群内存使用情况
  • 集群文件系统使用情况
  • Pod CPU 使用率

附加步骤

将 Prometheus 和 Grafana 部署到 Azure Kubernetes 服务 (AKS) 等基于云的生产集群时,需要执行以下操作。

为 Prometheus 创建持久卷

持久卷资源用于管理集群中的持久和永久存储。管理员提供一个持久卷以明确存储数据。它可以将数据存储在:

  • 本地计算机
  • 网络共享
  • 云供应商提供的 block 存储卷

无论 Kubernetes 应用程序、pod、应用程序容器甚至 kubernetes 集群本身的生命周期/状态如何,持久卷数据都会持续保存。下面的示例代码展示了如何创建持久卷以保留应用程序数据:

apiVersion: v1
kind: PersistentVolume
metadata:name: pvc-prometheus-migration-prometheus-0
spec:accessModes:- ReadWriteOnceazureDisk:cachingMode: NonediskName: pvc-prometheus-migration-prometheus-0diskURI: /subscriptions/f5125d82-2622-4c50-8d25-3f7ba3e9ac4b/resourceGroups/sample-migration-resource-group/providers/Microsoft.Compute/disks/pvc-prometheus-migration-prometheus-0fsType: ""kind: ManagedreadOnly: falsecapacity:storage: 1GipersistentVolumeReclaimPolicy: DeletestorageClassName: prometheusvolumeMode: Filesystem

您将创建一个新的 .yaml 文件并添加上面的代码,此代码将在服务重新启动之间保留您的数据。

要将持久卷添加到集群,请运行以下命令:

kubectl apply -f prometheus-persistent-volume.yaml

用于 Prometheus 的 PVC

PVC(Persistent Volume Claim)表示 pod 为获得实际块存储而提出的数据存储请求。PVC 消耗 Persistent Volume 数据资源。

PVC 可以请求特定的数据大小和访问模式。下面的示例代码显示了如何创建持久卷请求以访问持久卷:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:labels:app.kubernetes.io/name: prometheusprometheus: prometheus-migration-prometheusname: prometheus-prometheus-migration-prometheus-db-prometheus-prometheus-migration-prometheus-0namespace: monitoring
spec:accessModes:- ReadWriteOnceresources:requests:storage: 1GistorageClassName: prometheusvolumeMode: FilesystemvolumeName: pvc-prometheus-migration-prometheus-0

要将 PVC 添加到群集,请运行此命令:

kubectl apply -f prometheus-persistent-volume-claim.yaml

为 Grafana 创建持久卷和 PVC

以下示例代码将为 Grafana 创建持久卷:

apiVersion: v1
kind: PersistentVolume
metadata:name: pv-grafana-storagenamespace: monitoringlabels:type: nfs
spec:storageClassName: managed-nfscapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:server: (your Production prometheus)path: "/mnt/nfs/grafana-storage"

要将 PVC 添加到集群,请运行以下命令:

kubectl apply -f grafana-persistent-volume-claim.yaml

配置 Prometheus RBAC 权限

在将 Prometheus 和 Grafana 部署到生产环境之前,您将使用 ClusterRole 配置 RBAC 权限。然后,使用 ClusterRoleBinding 对象将此 ClusterRole 绑定到 ServiceAccount。

配置 Prometheus RBAC 权限的示例 yaml 代码

apiVersion: v1
kind: ServiceAccount
metadata:name: prometheus
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:name: prometheus
rules:
- apiGroups: [""]resources:- nodes- nodes/metrics- services- endpoints- podsverbs: ["get", "list", "watch"]
- apiGroups: [""]resources:- configmapsverbs: ["get"]
- apiGroups:- networking.k8s.ioresources:- ingressesverbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:name: prometheus
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus
subjects:
- kind: ServiceAccountname: prometheusnamespace: default

要将 RBAC 权限添加到集群,请运行以下命令:

kubectl apply -f rbac-permissions.yaml

创建 Prometheus Kubernetes 服务

Prometheus Kubernetes 服务将公开正在运行的 Prometheus 应用程序,以允许外部访问。

创建 Prometheus Kubernetes 服务的 YAML 示例:

apiVersion: v1
kind: Service
metadata:name: prometheuslabels:app: prometheus
spec:ports:- name: webport: 9090targetPort: 80selector:app.kubernetes.io/name: prometheussessionAffinity: ClientIP

要将 Prometheus 服务添加到集群,请运行以下命令:

kubectl apply -f prometheus-service.yaml

创建 Grafana Kubernetes 服务

Prometheus Kubernetes 服务将公开正在运行的 Grafana 应用程序,以允许外部访问 Grafana 控制面板。

用于创建 Grafana Kubernetes 服务的示例 YAML:

apiVersion: v1
kind: Service
metadata:name: grafananamespace: monitoringannotations:prometheus.io/scrape: 'true'prometheus.io/port:   '3000'
spec:selector: app: grafanatype: NodePort  ports:- port: 3000targetPort: 80nodePort: 32000

要将 Grafana 服务添加到集群,请运行以下命令:

kubectl apply -f grafana-service.yaml

完成这些附加步骤后,您就可以在生产中运行 Prometheus 和 Grafana 了。

总结

在本期教程中,我们带您一起学习了如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana。此外,还详细介绍了如何在 Grafana 上创建一个简单的控制面板,以便跟踪 Kubernetes 集群上的资源和性能指标。为了更好地跟踪 Kubernetes 集群和微服务性能,监控至关重要。

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

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

相关文章

服务器数据恢复—EVA存储raid5硬盘离线的数据恢复案例

服务器数据恢复环境: 某品牌EVA某型号存储,底层是RAID5阵列,划分了若干lun。 服务器故障&分析: 该存储设备中raid5阵列有两块硬盘掉线,存储中的lun丢失。 将故障服务器存储中的所有磁盘编号后取出,硬件…

如何正确利用点对点传输工具来传输文件

P2P技术作为一种创新的数据交换机制,近年来已经获得了广泛的关注和应用。这种技术通过直接在用户之间建立连接,绕过了传统的中心服务器架构,从而在数据传输效率和速度上实现了显著提升。然而,正如硬币有两面,P2P技术同…

爬虫正则+bs4+xpath+综合实战详解

Day3 - 1.数据解析概述_哔哩哔哩_bilibili 聚焦爬虫:爬取页面中指定的页面内容 编码流程:指定url -> 发起请求 -> 获取响应数据 -> 数据解析 -> 持久化存储 数据解析分类:正则、bs4、xpath(本教程的重点) 数据解析原理概述&am…

OpenCV——Scharr边缘检测

目录 一、Scharr算法1、算法概述2、主要函数 二、C代码三、python代码四、结果展示1、灰度图2、X方向一阶边缘2、Y方向一阶边缘3、整幅图像的一阶边缘 五、相关链接 OpenCV——Scharr边缘检测由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章&…

使用Python自动化操作手机,自动执行常见任务,例如滑动手势、呼叫、发送短信等等

使用Python自动化操作手机,自动执行常见任务,例如滑动手势、呼叫、发送短信等等。 此自动化脚本将帮助你使用 Python 中的 Android 调试桥 (ADB) 自动化你的智能手机。下面我将展示如何自动执行常见任务,例如滑动手势、呼叫、发送短信等等。 您可以了解有关 ADB 的更多信息,…

什么是网络安全,如何防范?

网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 网络安全涵盖了网络设备安全、网络信息安全…

优化管理流程 夯实管理基石

问团队就人才中心管理流程的梳理及优化设计、工作规范与管理制度梳理、跨部门与部门内部协作配合有效性等方面提出了诸多管理思路与方法工具,中心干部员工通过3个月的学习与参与项目,展现了更加积极的工作状态,并学习到了更为先进并科学的工作…

如何用AirServer进行手机投屏?,Airserver 永久激活注册码

AirServer一款投屏神器,可以帮你轻松地将iPhone、iPad投屏到Mac。是不是经常看到游戏主播用AirServer投屏?此外,AirServer也是视频Up主必备工具之一!用来录制演示教程不错。除了实现单个手机投屏到电脑或荧幕。如果你有多画面投屏…

React进阶 - 12(浅谈 state、props与render函数的关系)

本章内容 目录 一、state 与 render 函数的关系二、props 与 render函数的关系 上一节我们讲了如何使用 PropTypes及 DefaultProps来进行属性的类型校验及设置属性默认值。本节内容我们来了解一下 state、props与render函数的关系。 一、state 与 render 函数的关系 我们知道…

C++中的const常量-->‘only read,can‘t change‘

2024年1月22日 ///昨天外面下雨地没干,骑车摔得好结实,,, 2024年1月23日 内容整理自The Cherno:C系列 这个关键字确实有点难,看了好几遍原视频整理出来的知识框架,还需要加以练习 -----------------------------------------…

【AI视野·今日Robot 机器人论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Thu, 11 Jan 2024 Totally 16 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Analytical Model and Experimental Testing of the SoftFoot: an Adaptive Robot Foot for Walking over Obstacles and Irre…

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来,这样如果你杀死boss, creatures | gameobjects 在副本重置之前…

「我在淘天做技术」智能对话新纪元:百万日活对话机器人的 LLM 落地实践

作者:智能小蜜团队 一、前言 阿里小蜜家族(阿里小蜜、店小蜜、万象),从 2015 年发展至今,已经成为了覆盖淘天 P-C(平台-消费者)、B-C(商家-消费者)、P-B(平台…

【明道云】【企业数字化】如何将明道云的数据直连SmartBi使用

【背景】 明道云优势在于上传和企业内部流程的系统化,换句话说,是产生数据的部分。 SmartBi优势在于生成报表和即席查询等,是使用沉淀数据的部分。 如果能将这两部分的数据打通,可以大大扩展企业数字化框架的覆盖范围。让这两套平…

【Linux】Linux进程信号(下)

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:Linux 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【Linux】…

独步IT界,开放API接口文档新标杆!

目录 1、简介 1.1 什么是API接口 1.2 为什么开放API接口 1.3 API接口的优势和应用领域 1.4 API接口的基本原则和设计准则 2、接口认证 2.1 认证方式和流程 2.2 API密钥的生成和管理 2.3 认证错误处理 3、接口调用 3.1 请求方法和URL规范 3.2 请求参数和格式 3.3 响…

遍历子网所有ip地址,寻找空闲ip

在cmd窗口下输入如下代码: for /l %i in (1,1,255) do ping -n 1 -w 60 10.183.27.%i | find "Reply" >> d:\pingall27.log 得到如下结果 上图中,有reply的代表该IP已经被占用。但是观察红框中 22-->25之间缺少23 24 则说明23/24 是…

ChatGPT到底好不好用?相比于搜索引擎的优势

在数字化时代,获取信息的方式正经历着翻天覆地的变化。搜索引擎曾经是我们获取信息的首选工具,但现在,随着人工智能技术的飞速发展,ChatGPT等智能聊天机器人正在逐渐改变我们搜索和处理信息的方式。那么,ChatGPT到底好…

宿舍安全用电监模块

学校宿舍安全用电监测模块是针对 0.4kV 以下的 TT、TN 系统设计的智能电力装置,具有单、三相交流电测量、四象限电能计量、谐波分析、开关量输入、继电器输出功能,以及 RS485 通讯或 GPRS 无线通讯功能,通过对配电回路的剩余电流、导线温度等…

理想架构的Doherty功率放大器理论与仿真

Doherty理论—理想架构的Doherty功率放大器理论与仿真 参考: 三路Doherty设计 01 射频基础知识–基础概念 ADS仿真工程文件链接:理想架构的Doherty功率放大器理论与仿真 目录 Doherty理论---理想架构的Doherty功率放大器理论与仿真0、Doherty架构的作用…