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

本系列将分成三个部分,您将学习如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana,以及如何在 Grafana 上创建一个简单的控制面板。Prometheus 和 Grafana 是 Kubernetes 最受欢迎的两种开源监控工具。学习如何使用 Helm 集成这两个工具,使您能够轻松监控 Kubernetes 集群并排除故障。您还可以更深入地了解集群的健康状况和性能,它将跟踪 Kubernetes 集群上的资源和性能指标。

 

如前所述,Prometheus 和 Grafana 是用于监控容器编排平台的流行工具。最流行的两个容器编排工具是 Docker Swarm 和 Kubernetes。第一部分将为您介绍使用 Prometheus 和 Grafana 的前提条件,了解什么是 Prometheus 和 Grafana等。

 

前提条件

要跟上本指南,你需要:

 

  • 安装 Docker:要在你的机器上安装 Docker,请查看 Docker 官方文档 https://www.docker.com/。
  • 安装 Kubectl:这可以让你与 Kubernetes 集群通信。要在本地机器上安装 Kubectl 工具,请遵循 Kubectl 官方文档指南 https://kubernetes.io/docs/tasks/tools/。
  • 掌握 Kubernetes 的基本知识:请确保你对 Kubernetes 有一定的了解。您可以阅读 Kubernetes 官方文档 https://kubernetes.io/ 来学习 K8s 相关知识。
  • 建立 Kubernetes 集群:在Kubernetes 集群上安装 Prometheus 和 Grafana。本指南将使用 Minikube (快速指南 https://minikube.sigs.k8s.io/docs/start/)。这是一个免费的本地 Kubernetes 集群。

 

什么是 Prometheus?

Prometheus 是一款开源 DevOps 工具。它为 Kubernetes 等容器编排平台提供监控和实时警报功能,以时间序列数据的形式收集和存储来自平台的指标。其次,它具有监控容器编排平台的开箱即用功能,并且是 Grafana 等其他数据可视化库的数据源。

 

Prometheus 从 Kubernetes 集群收集的指标包括:

 

  • Kubernetes 集群健康状况。
  • CPU 状态
  • 内存使用情况
  • Kubernetes 节点状态。
  • 潜在性能瓶颈报告。
  • 性能指标
  • 服务器资源

什么是 Grafana?

Grafana 是一款用于分析和交互式可视化的多平台、开源在线应用程序。当你将它连接到受支持的数据源(如 Prometheus)时,它能提供:

 

  • 交互式控制面板
  • 交互式图表
  • 可视化图表
  • 网络告警

 

无论数据源是什么,Grafana 都能为您查询、可视化和理解您的指标。除了 Prometheus,Grafana 还支持其他几个数据源,例如:

 

  • InfluxDB
  • AzureMonitor
  • Datadog
  • Graphite
  • AWS CloudWatch。
  • PostgreSQL
  • Microsoft SQL Server (MSSQL)。
  • Elasticsearch
  • Google Cloud Monitoring
  • MySQL
  • Alertmanager
  • Loki

 

您可以选择从头开始创建控制面板,或者导入 Grafana 已经提供的控制面板,并对其进行定制以满足您的需求。大多数 DevOps 专业人员都使用 Grafana 和 Prometheus 来创建具有数据可视化控制面板的强大时序数据库。

 

在这里,我们将创建一个仪表板,用于可视化从 Prometheus 数据源收集的指标。

 

Prometheus 的架构

下图显示了 Prometheus 的组件和工作原理:

 

image.png

 

这些都是 Prometheus 的组件:

 

  • Prometheus Server是 Prometheus 架构的核心组件。它是实际监控工作进行的地方。
  • Alertmanager 通过电子邮件和其他通信渠道(如 Slack)向用户发送告警。
  • Pushgateway 可支持临时任务。它允许用户将时间序列数据推送到 Prometheus 目标。它还能处理短期任务的指标。

 

Prometheus 服务器可进一步分为三个组件:

 

  • Data Retrieval Worker 从容器编排平台中抓取并收集度量数据。然后,它将指标转换为时间序列数据。它从许多来源收集指标,这些来源在其设置中指定。
  • Time Series Database 存储来自数据检索组件的时间序列数据。
  • HTTP Server 响应时间序列数据的请求和 PromQL 查询。然后,它将信息显示在网络用户界面或仪表板上。它既可以使用 Grafana 等第三方平台,也可以使用内置的 Prometheus Web UI。

 

设置 Prometheus 和 Grafana 以监控容器编排平台的好处

设置 Prometheus 和 Grafana 进行监控能给我们带来很多好处:

 

  • 可以获得一套完整的端到端解决方案,用于观察和监控 Kubernetes 集群。
  • 可以使用 Prometheus PromQL 查询语言查询指标。
  • 如果你有一个微服务架构,Prometheus 会同时跟踪你的所有微服务。
  • 当某个服务出现故障时,会立即发出警报。
  • Grafana 仪表盘提供集群的性能和健康状况报告。

 

在 Kubernetes 上集成 Prometheus 和 Grafana 时,开发人员普遍采用两种方法:

 

  • 手动 Kubernetes 部署:在这种方法中,开发人员需要编写 Kubernetes 部署和服务 YAML 文件。需要为 Prometheus 和 Grafana 应用程序编写 YAML。在 YAML 文件中,指定在 Kubernetes 上集成 Prometheus 和 Grafana 的所有配置。然后,把这些文件部署到 Kubernetes 集群,以便 Prometheus 和 Grafana 正常工作。不过这种方法的弊端是开发人员可能会有很多 YAML 文件,这对大多数 DevOps 实践者来说都是令人厌烦的。如果在任何 YAML 文件中出错,将无法在 Kubernetes 上集成 Prometheus 和 Grafana。

  • 使用 Helm:这是将应用容器部署到 Kubernetes 的最简单易行的方法。Helm 是 Kubernetes 的官方软件包管理器。有了 Helm,你可以简化 Kubernetes 应用程序的安装、部署和管理。Helm 将 Kubernetes 应用程序打包并捆绑到 Helm Chart中。

 

Helm Chart是所有 YAML 文件的集合:

 

  • 部署
  • 服务
  • 密钥
  • ConfigMaps Manifests

 

您将使用这些文件把应用容器部署到 Kubernetes。Helm 允许用户下载已有清单 YAML 文件的 Helm Chart,而不是为每个应用容器创建单独的 YAML 文件。

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

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

相关文章

类和对象

1 类定义: class ChecksumAccumulator {// class definition goes here } 你就能创建 ChecksumAccumulator 对象:new CheckSumAccumulator 注:1scala类中成员默认是public类型,若设为私有属性则必须加private关键字。在scala中是…

NLP论文阅读记录 - | 使用 BRIO 训练范式进行抽象文本摘要

文章目录 前言0、论文摘要一、Introduction二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果标准抽象模型微调抽象模型微调抽象模型和 BRIO微调抽象模型和 BRIO-Loop 五 总结结论局限 前言 Abstractive Text Summarization Using th…

OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代

文章目录 机器视觉缺陷检测工业上常见缺陷检测方法内容简介作者简介目录读者对象如何阅读本书获取方式 机器视觉 机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工…

【项目问题解决】% sql注入问题

目录 【项目问题解决】% sql注入问题 1.问题描述2.问题原因3.解决思路4.解决方案1.前端限制传入特殊字符2.后端拦截特殊字符-正则表达式3.后端拦截特殊字符-拦截器 5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 在处理接口入参的一些sql注入问题,虽然通过M…

flutter开发windows应用的库

一、window_manager 这个插件允许 Flutter 桌面应用调整窗口的大小和位置 地址:https://github.com/leanflutter/window_manager二、win32 一个包,它使用FFI包装了一些最常见的Win32 API调用,使Dart代码可以访问这些调用,而不需…

node.js mongoose index(索引)

目录 简介 索引类型 单索引 复合索引 文本索引 简介 在 Mongoose 中,索引(Index)是一种用于提高查询性能的数据结构,它可以加速对数据库中文档的检索操作 索引类型 单索引、复合索引、文本索引、多键索引、哈希索引、地理…

useConsole的封装,vue,react,htmlscript标签,通用

之前用了接近hack的方式实现了console的封装,目标是获取console.log函数的执行(调用栈所在位置)所在的代码行数。 例如以下代码,执行window.mylog(1)时候,console.log实际是在匿名的箭头函数()>{//这里执行的} con…

使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么

作为两种常见的网络协议,HTTP和HTTPS都是用于在浏览器和服务器之间传输数据的。然而在保障数据安全性方面,HTTPS远远优于HTTP。在网络安全愈发重要的当下,HTTP协议的不安全性使得其逐渐被淘汰弃用。那么使用HTTP协议有哪些风险呢?…

Backend - Django 项目创建 运行

目录 一、配置环境 二、创建 Django 项目 (一)新建文件夹 (二)打开文件夹 (三)打开运行终端 (四)创建基础项目 (五)创建app 1. 安装Django &#xf…

ASP.NET Core MVC依赖注入理解(极简个人版)

依赖注入 文献来源:《Pro ASP.NET Core MVC》 Adam Freeman 第18章 依赖注入 1 依赖注入原理 所有可能变化的地方都用接口在使用接口的地方用什么实体类通过在ConfigureService中注册解决注册的实体类需要指定在何种生命周期中有效 TransientScopedSingleton 2…

磁盘类型选择对阿里云RDS MySQL的性能影响

测试说明 这是一个云数据库性能测试系列,旨在通过简单标准的性能测试,帮助开发者、企业了解云数据库的性能,以选择适合的规格与类型。这个系列还包括: * 云数据库(RDS MySQL)性能深度测评与对比 * 阿里云RDS标准版(x86) vs 经济…

远舢智能入选国家智慧能源产业联盟理事单位 远舢OS擘画绿色能源新蓝图

近日,中关村智慧能源产业联盟2023年会员大会暨数字技术赋能能源转型论坛在京召开。大会审议通过了北京远舢智能科技有限公司(以下简称“远舢智能”)成为联盟新任理事单位,将与国务院发展研究中心、国家电投、清华大学等国家重点单…

Springboot数据加密篇

一、密码加密 1.1Hash算法(MD5/SHA-512等) 哈希算法,又称摘要算法(Digest),是一种将任意长度的输入通过散列函数变换成固定长度的输出的单向密码体制。这种映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制…

【爬虫软件】孔夫子二手书采集

项目演示 孔网爬取图书信息 目录结构 [ |-- api-ms-win-core-synch-l1-2-0.dll, |-- api-ms-win-core-sysinfo-l1-1-0.dll, |-- api-ms-win-core-timezone-l1-1-0.dll, |-- api-ms-win-core-util-l1-1-0.dll, |-- api-ms-win-crt-conio-l1-1-0.dll, |-- api…

初级数据结构(七)——二叉树

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;六&#xff09;——堆 | NULL 下一篇-> 1、写在前面 二叉树的基本概念在《初级数据结构&#xff08;五&#xff09;——树和二叉树的概念》中已经介绍得足够详细了。上一…

java开发需要掌握的TypeScript相关的知识点,细致简洁版。

Typescript&#xff1a; 介绍&#xff1a; TypeScript&#xff08;简称 TS&#xff09;是JavaScript的超集&#xff08;继承了JS全部语法&#xff09;&#xff0c;TypeScript Type JavaScript。 简单说&#xff0c;就是在JS的基础上&#xff0c;为JS添加了类型支持。是微软开…

分享一套国内功能齐全的开源MES/免费MES/MES源代码

一、系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES、好看的数字大屏。 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理&#xff0c;车间基础数据管理&#xff0c;计划管理…

大模型之二十一-小语言模型塞道开启

当前提到大语言模型&#xff0c;大家想到的都是动辄百亿规模以上参数量的模型&#xff0c;13B、70B都是稀疏平常入门级的&#xff0c;但是目前从模型层面来看&#xff0c;模型参数量的规模两极分化已经来临&#xff0c;早期各大公司为了效果怼上去&#xff0c;采取了简单粗暴的…

Jmeter 性能测试 —— 评估一个系统TPS与并发数!

问题&#xff1a;性能压测&#xff0c;如何评估一个系统的TPS和并发数&#xff1f; 1、对于新系统 由业务部门或开发人员预估交易量和TPS指标 可以参考公式&#xff1a;并发用户 在线用户数 * 10%。 当一个系统还没有上线时&#xff0c;我们可以预判的是这个系统准备要给多…

【数字图像处理】实验一 图像基本运算

图像基本运算 一、实验内容&#xff1a; 1&#xff0e; 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。 2&#xff0e; 熟练掌握各种图像点运算的基本原理及方法。 3&#xff0e; 能够从深刻理解点运算&#xff0c;并能够思考拓展到一定的应用领…