公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享

前言

K8s本身不包含内置的监控工具,所以市场上有不少这样监控工具来填补这一空白,但是没有一个监控工具有prometheus全家桶使用率高,因为它由 CNCF维护,已经成为了监控 k8s 集群的事实上的行业标准,下面介绍一下如何在K8s快速部署一个kube-prometheus项目,来实现对k8s 相关资源监控与告警

kube-prometheus介绍

kube-prometheus是一个完整的监控解决方案,可以轻松地将其部署到 Kubernetes 集群中,它包括以下内容

  1. Prometheus 用于度量收集

  2. Alertmanager 用于指标警报和通知

  3. Grafana 用于图形用户界面

  4. 一组特定于K8s的exporters,用作指标收集代理

  5. 使用 Prometheus Operator 来简化和自动化该堆栈的设置

快速安装

在将 kube-prometheus部署到 k8s 集群之前,先确认与你的 k8s匹配的是版本,然后在下载

下载

执行kubectl version 查看k8s 版本,下载对应版本

由于本人的 k8s 版本为 v1.25.13,所以下载kube-prometheus-0.12.0

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.12.0.zip

解压

tar -zxvf kube-prometheus-0.12.0.zip & cd kube-prometheus-0.12.0

修改镜像地址

由于网络原因,kube-state-metrics和prometheus-adapter镜像地址,在国内无法下载,因此需要修改以下地址

vi manifests/kubeStateMetrics-deployment.yaml

image: bitnami/kube-state-metrics:2.7.0

vi manifests/prometheusAdapter-deployment.yaml

image: cloveropen/prometheus-adapter:v0.10.0

访问配置

为了可以从外部访问 PrometheusGrafanaAlertmanager,需要修改 service 类型为 NodePort 类型。

修改 Prometheus 的 service

vi manifests/prometheus-service.yaml

# 设置对外访问端口,增加如下两行
type: NodePort
nodePort: 31922

修改 Grafana 的 service

vi manifests/grafana-service.yaml

# 设置对外访问端口,增加如下两行
type: NodePort
nodePort: 30300

修改 Alertmanager 的 service

vi manifests/alertmanager-service.yaml

# 设置对外访问端口,增加如下两行
type: NodePort
nodePort: 30200

安装

在kube-prometheus-0.12.0目录下执行以下命令进行安装

kubectl apply --server-side -f manifests/setup
kubectl apply -f manifests/

执行完成以后,访问monitoring 空间,查看部署状态,可以看到启动成功,并且都是高可用部署

kubectl get pods -n monitoring

验证

Prometheus验证

选一台 node 节点ip+31922,即可访问prometheus的 Web UI

Alertmanager验证

选一台 node 节点ip+30200,即可访问alertmanager的 Web UI,可以看到有一些报警,由于alertmanager的报警配置比较复杂同时对国内的通讯工具支持有限,因此可以使用PrometheusAlert进行告警配置

Grafana验证

选一台 node 节点ip+30300,即可访问grafana的 Web UI,默认用户名密码:admin/admin,登录会提示更改密码,登录以后,可以看到已经内置了不少监控大盘

集群资源监控

节点资源监控,可以看到当前节点部署了哪些 pod,以及对应的负载是多少

卸载

执行以下命令即可卸载相关组件

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

存在的问题

持久存储

以上我们安装未使用持久化存储,所以如果Prometheus或者Grafana重启,那么采集的数据和自定义的仪表盘等数据会丢失,因此如果考虑在生产环境使用,需要把数据使用存储卷挂载至文件系统。

Grafana显示时间问题

由于grafana默认时区是UTC,比中国时间慢了8小时,很不便于日常监控查看,需要进行修改,如下图

因此需要调整成中国时间,utc+8,替换grafana-dashboardDefinitions.yaml

sed -i '' 's/utc/utc+8/g' grafana-dashboardDefinitions.yaml
sed -i '' 's/UTC/UTC+8/g' grafana-dashboardDefinitions.yaml
grep -i timezone grafana-dashboardDefinitions.yaml

总结

以上我们介绍了什么是kube-prometheus以及如何在k8s中快速部署kube-prometheus,后续会深入讲解相关使用,同时在操作过程中如果有疑问,也欢迎关注我的公众号进行技术交流,如果本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~

扫描下面的二维码关注我们的微信公众帐号,在微信公众帐号中回复◉加群◉即可加入到我们的技术讨论群里面共同学习。

在k8s中快速搭建基于Prometheus监控系统的更多相关文章

  1. K8S集群搭建——基于CentOS 7系统

    环境准备集群数量此次使用3台CentOS 7系列机器,分别为7.3,7.4,7.5 节点名称 节点IPmaster 192.168.0.100node1 192.168.0.101node2 192. ...

  2. 基于prometheus监控k8s集群

    本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器 如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kuben ...

  3. Azure 中快速搭建 FTPS 服务

    FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...

  4. 容器编排系统K8s之Prometheus监控系统+Grafana部署

    前文我们聊到了k8s的apiservice资源结合自定义apiserver扩展原生apiserver功能的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/ ...

  5. 后续来啦:Winform/WPF中快速搭建日志面板

    后续来啦:Winform/WPF中快速搭建日志面板 继昨天发文ASP.NET Core 可视化日志组件使用(阅读文章,查看视频)后,视频下有朋友留言 "Winform客户端的程序能用它不?& ...

  6. 在 K8S 中快速部署 Redis Cluster & Redisinsight

    Redis Cluster 部署 使用 Bitnami helm chart 在 K8S redis 命名空间中一键部署 Redis cluster . helm repo add bitnami h ...

  7. Prometheus监控系统之入门篇(一)续

    在上篇Prometheus监控系统之入门篇(一)中我们讲解了Prometheus的基本架构和工作流程, 并从0到1搭建了Prometheus服务,pushgateway以及告警系统. 本篇我们主要介绍 ...

  8. 手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统

    摘要:在CentOS7.4服务器版本的环境下安装nginx服务器.配置文件服务器.流媒体服务器. 本文分享自华为云社区<华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器.搭建物联 ...

  9. 快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)

    快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana) 概要说明 需求场景,系统环境是CentOS,多个应用部署在多台服务器上,平时查看应用日志及排查问题十 ...

  10. 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践

    [点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...

随机推荐

  1. OCI云主机环境如何上传下载文件

    OCI云主机的连接是使用密钥而非用户密码连接. 之前使用的非主流的一个SSH工具,正常连接主机都没问题,但需要手工输入用户. 可是在选择SFTP时,始终找不到用户名的设置,导致密钥连接的SFTP始终失 ...

  2. C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题

    记录开发简单职工管理系统遇到的一些问题,黑马教程 https://www.bilibili.com/video/BV1et411b73Z P147 ~ P166 头文件与源文件 头文件只声明,源文件来 ...

  3. vue2实现数据聚合【scatter-clustering】组件封装

    实现如下效果: 效果展示:https://code.juejin.cn/pen/7228568245148581943 如果不会请移步到官网的栗子,请点击查看 直接给大家上代码: 整体代码片段 1 & ...

  4. Rethinking Point Cloud Registration as Masking and Reconstruction论文阅读

    Rethinking Point Cloud Registration as Masking and Reconstruction 2023 ICCV *Guangyan Chen, Meiling ...

  5. .NET周刊【10月第1期 2023-10-01】

    国内文章 .NET应用如何防止被反编译 https://www.cnblogs.com/Can-daydayup/p/17736700.html 本文主要讲述了如何防止.NET应用被反编译.虽然无法完 ...

  6. 2020 5 17 codeforces

    cf还没结束,就开始写总结了.cf确实是个好东西,能够直接暴露出弱点和增加刷题量.以后还是要多打打的.这次我发现自己的码力还是不行.一个二分都要调好久.唉T1sb题,就是入门用的.题目看不懂...写了 ...

  7. 什么???CSS也能原子化!

    1.什么是原子化 CSS? Atomic CSS is the approach to CSS architecture that favors small, single-purpose class ...

  8. Ubuntu上解决快捷键与idea快捷键冲突

    Ubuntu上解决快捷键与idea快捷键冲突 一.ubuntu 本身系统导致,需要修改 ubuntu 快捷键 解决方案: 设置 按钮→系统设置→硬件选项区域中的"键盘"→切换到&q ...

  9. 使用 Ant Design Vue 你可能会遇到的14个问题

    公司有一个新需求,在原来项目基础上开发,项目中使用 Ant Design Vue,版本是 1.X ,在此记录下遇到的问题:对于没有使用过或者使用程度不深的同学来说,希望可以帮助你在开发中遇到问题时有个 ...

  10. 数据结构与算法 | 二叉树(Binary Tree)

    二叉树(Binary Tree) 二叉树(Binary Tree)是一种树形数据结构,由节点构成,每个节点最多有两个子节点:一个左子节点和一个右子节点. public class TreeNode { ...