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

【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建


在这里插入图片描述

本文导读

    • 一、集群资源监控概述
      • 1. 集群监控
      • 2. Pod 监控
    • 二、监控平台搭建所需组件概述
    • 三、搭建监控平台
      • 1. 部署 Prometheus
      • 2. 部署 Grafana
      • 3. 打开 Grafana,添加数据源和显示模板


一、集群资源监控概述

Kubernetes 集群对资源的监控指标主要有集群监控和 Pod 监控两大部分。

1. 集群监控

即对 k8s 集群本身的监控,主要监控以下内容。

  • 节点资源利用率:集群中每个节点的 CPU 资源使用情况、利用率等;
  • 节点数:比如说集群共有三个节点,有两个处于忙碌状态,一个节点处于空闲状态,那么在资源分配时就需要节点数进行考虑;
  • 集群中运行的pods:每个节点中运行的 pod 数量等。

2. Pod 监控

Pod 监控,监控集群中运行的 pod 以及容器,主要监控以下内容。

  • 容器指标:pod 中运行的容器数量及状态等;
  • 应用程序:对容器中运行的应用程序进行监控,可知晓当前集群的运行情况;

二、监控平台搭建所需组件概述

搭建监控平台需要使用 Prometheus 和 Grafana 两个组件。以下一一介绍:

Prometheus(普罗米修斯) 是一套开源组件,可以做到监控、报警功能且集成了时间序列数据库。其基本原理是通过 http 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 http 接口就可以接入监控系统,不需要任何 sdk 或者其他的复杂集成过程。

Grafana 是一个开源的数据分析和可视化工具,有着非常好的图表和布局展示,包含功能齐全的度量仪表盘和图形编辑器。支持 graphite、zabbix、influxDB 和 OpenTSDB 作为数据源。它在此处的作用也就是以可视化的形式展现“普罗米修斯”抓取的状态

Grafana 在往期文章已有详细介绍和操作演示,详情参见 Grafana 工具使用详解

组件工作示意图如下:

在这里插入图片描述

三、搭建监控平台

提示:搭建过程中所需文件均已在文末附下载地址,需要自取即可。

1. 部署 Prometheus

第一步:创建一个目录,用于存放我们需要的 yaml 文件;

[root@master ~]# mkdir pg
[root@master ~]# cd pg
[root@master pg]# 

上传 yaml 文件至此目录,我使用的是Xftp 7 工具;

在这里插入图片描述
上传后如下:

在这里插入图片描述

第二步:部署守护进程,也就文件中的 node-exporter.yaml 文件;

[root@master pg]# kubectl create -f node-exporter.yaml 
daemonset.apps/node-exporter created
The Service "node-exporter" is invalid: spec.ports[0].nodePort: Invalid value: 31672: provided port is already allocated
[root@master pg]# 

第三步:部署 prometheus 目录下的其他 yaml 文件;

[root@master pg]# ls
grafana  node-exporter.yaml  prometheus
[root@master pg]# cd prometheus/
[root@master prometheus]# ls
configmap.yaml  prometheus.deploy.yml  prometheus.svc.yml  rbac-setup.yaml

[root@master prometheus]# kubectl create -f rbac-setup.yaml 
clusterrole.rbac.authorization.k8s.io/prometheus created
serviceaccount/prometheus created
clusterrolebinding.rbac.authorization.k8s.io/prometheus created

[root@master prometheus]# kubectl create -f configmap.yaml 
configmap/prometheus-config created

[root@master prometheus]# kubectl create -f prometheus.deploy.yml 
deployment.apps/prometheus created

[root@master prometheus]# kubectl create -f prometheus.svc.yml 
service/prometheus created
[root@master prometheus]# 

部署完成后,查看 pods,可以看到 prometheus 已存在,部署完成。

在这里插入图片描述

2. 部署 Grafana

部署方式同上,进入 Grafana 目录后,分别执行 yaml 文件;

[root@master pg]# ls
grafana  node-exporter.yaml  prometheus
[root@master pg]# cd grafana/
[root@master grafana]# ls
grafana-deploy.yaml  grafana-ing.yaml  grafana-svc.yaml

[root@master grafana]# kubectl create -f grafana-deploy.yaml 
deployment.apps/grafana-core created

[root@master grafana]# kubectl create -f grafana-svc.yaml 
service/grafana created

[root@master grafana]# kubectl create -f grafana-ing.yaml 
ingress.extensions/grafana created
[root@master grafana]# 

部署完成后,查看 pods,可以看到 grafana 已存在,部署完成。

在这里插入图片描述

3. 打开 Grafana,添加数据源和显示模板

首先 kubectl get svc -n kube-system 查看访问 grafana 所需要的端口号;

在这里插入图片描述

可以看到 grafana 端口号为 30708,接下来在本地浏览器使用 宿主机IP:30708 即可访问 grafana 应用。

关于 Grafana 应用的相关操作(添加数据源、添加仪表盘等)往期文章已有详细介绍,参见 Grafana 工具使用详解。


搭建监控平台所需 yaml 文件下载地址:

链接:搭建监控平台所需 yaml 文件
提取码:0214


相关文章:

  • SpringCloud Stream基本使用
  • 没有CANdela,无法编辑cdd数据库文件,也能轻松完成诊断测试,立省大二十个w
  • 【Linux】基本指令 (下篇)
  • 博途PLC的模糊PID(Matlab “fuzzy“工具箱使用介绍)
  • 【Vue 开发实战】实战篇 # 45:如何构建可交互的组件文档让代码高亮的显示在页面
  • m分别通过matlab和FPGA实现基于高阶循环谱的信号载波调制识别(四阶循环累量)仿真(包括仿真录像,matlab工程,fpga工程)
  • 前端知识体系
  • html5 图像标签
  • Python02--python中的缩进,注释和模块
  • STM32CUBEIDE(14)----外部中断EXTI
  • 项目管理PMP要点
  • Element-UI+vue实现登录表单
  • vmware安装centos7并制作多副本
  • hbase加kerberos 后报错hbase master 起不来
  • iPad 使用技巧:虚拟键盘与实体键盘
  • [case10]使用RSQL实现端到端的动态查询
  • 【译】理解JavaScript:new 关键字
  • Android Studio:GIT提交项目到远程仓库
  • C# 免费离线人脸识别 2.0 Demo
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • js继承的实现方法
  • spark本地环境的搭建到运行第一个spark程序
  • windows下mongoDB的环境配置
  • XML已死 ?
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端工程化(Gulp、Webpack)-webpack
  • 深入 Nginx 之配置篇
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 微信小程序:实现悬浮返回和分享按钮
  • 协程
  • 写代码的正确姿势
  • 新书推荐|Windows黑客编程技术详解
  • Python 之网络式编程
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #define、const、typedef的差别
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (LeetCode C++)盛最多水的容器
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (十)c52学习之旅-定时器实验
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core 和 .NET Framework 中的 MEF2
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [ACTF2020 新生赛]Include