小工具      在线工具  汉语词典  css  js  c++  java

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

云原生/云计算 - 入门到实战,kubernetes,云原生,容器,k8s 额外说明

收录于:195天前


在这里插入图片描述


一、集群资源监控概述

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


. . .

相关推荐

额外说明

Docker安装gbase8s数据库教程

本章教程介绍如何利用Docker安装gbase8s数据库。 目录 一、 搜索镜像 二、拉取镜像 三、启动容器 四、数据库连接 一、 搜索镜像 docker search gbase8s   二、拉取镜像 docker pull liaosnet/gbas

额外说明

Stream实现List集合在内存中的分页

最近开发了一个需求,定时任务从RPC加载全量数据缓存到redis中,周期性的刷新缓存中的数据。客户端调用API,通过参数key和当前页pageIndex和页大小pageSize,查询对应的页码的数据。我模拟的一下当时的代码: package page;

额外说明

HTML基础知识学习笔记附代码

初识HTML HTML(Hyper Text Markup Language)超文本标记语言 W3C(万维网联盟)World Wide Web Consortium W3C标准包括 接口化标准语言(HTML、XML) 表现标准语言(CSS) 行为标准(D

额外说明

lotus数据与关系数据库的数据转换范例

ODBC 访问数据库基本步骤与样例  (如果在脚本库写需要在Option 引用 uselsx "*lsxodbc")    Dim conn As ODBCConnection  Dim result As ODBCResultSet  Dim qry

额外说明

untiy 使用自带JsonUtility实现保存本地与读取

最近要写一个持久化数据的功能,来记录一下,网上重复太多也不便捷 ,我就直接来个干脆的 StreamWriter writer; Date a=new Date(); public class Date //自己创建个类 用于保存你的

额外说明

高等数学之曲率

 a代表改变角度 s代表弧长 圆的曲率              

额外说明

docker-compose搭建kafka集群

环境准备 服务器提前安装docker以及docker-compose环境 编写docker-compose.yml version: '3' services: zoo1: image: zookeeper:3.4.14 restar

额外说明

【Python 基础篇】Python 条件与循环控制

文章目录 导言 一、条件语句 1、if-elif-else 结构 2、嵌套条件语句 3、单行 if 语句 二、循环语句 1、while 循环 while 循环的高级用法 2、for 循环 for 循环的高级用法 示例一:输出 1 到 10 的偶数 示例二

额外说明

SpringBoot总结(十)——SpringBoot+Mybatis实现数据库的CRUD(从创建到实现【超详细附代码】)

一、创建项目。 这里创建的项目名是springboot-web3-mybatis。 1、点击左上角的File——>Project 2、选择Spring Initializr 点击Next。 3、填写相应的项目名、工程名等,点击Next。 4、选择Web

额外说明

【已解决】/opt/ros/noetic/lib/xx: symbol lookup error: undefined symbol

目录 1 问题背景 2 问题探索 3 问题解决 4 告别Bug 1 问题背景 环境: Ubuntu20.04 ROS noetic 现象: /opt/ros/noetic/lib/move_base/move_base: symbol lookup er

ads via 小工具