KubeSphere 监控中心在 物理资源监控 提供了物理资源层级的 CPU、内存、网络和磁盘等相关指标的监控,并支持回看历史监控和节点用量排行。物理资源状态在控制台的 平台管理 → 监控中心 页面可供查看。

前提条件

已有集群管理员 (Cluster-admin) 账号,或当前用户的角色在权限列表中勾选了 查看监控管理

查看集群状态

在左侧选择 物理资源监控,可以看到集群状态的监控页面,包括 集群节点状态、组件状态、集群资源使用情况 等三个部分。

集群状态监控

集群节点状态

集群节点状态显示当前所有节点在线状态,支持下钻到主机管理页面查看所有主机实时的资源使用情况,点击 节点在线状态 进入主机管理列表。

例如以下列表的 192.168.0.55 节点,显然它的内存空间不足,点击进去查看该主机的详情页面。

集群节点状态

从节点详情页,当前主机的 CPU、内存、本地存储、容器组使用情况从监控反馈的饼图中即可一目了然。明细发现内存使用率已高达 93 %,这种情况可能需要对该主机采取措施,比如对其进行扩容或通过添加污点的方式禁止调度新的工作负载到当前主机。

节点监控详情

在主机详情页点击 监控 tab,可以查看该主机的 CPU 使用率、CPU 平均负载、内存使用率、磁盘使用率、inode 使用率、IOPS、磁盘吞吐、网卡速率。对于主机而言,除了 CPU、内存、磁盘等使用率、磁盘吞吐这类常用监控指标,inode 使用率和 CPU 平均负载的监控信息对于主机资源管理也是非常有帮助的。

监控 tab

查看组件状态

服务组件提供 KubeSphere、Kubernetes 和 OpenPitrix 集群内各项服务组件的健康状态监控,若某些核心的服务组件出现异常,可能会导致系统不可用。查看当前集群服务组件的健康状态和运行时间,能够帮助用户监测集群的状况和及时定位问题。

点击 组件状态 即可跳转到服务组件的详情页面,如下可以看到 OpenPitrix 有一个组件状态异常,其 Tab 显示黄色的异常状态。

查看组件状态

查看集群资源使用情况

集群资源的监控指标包括当前集群所有节点的 CPU、内存、磁盘等利用率和容器组使用数量变化,点击左边的饼状图即可切换指标。监控的时间间隔为 40 分钟,四项监控指标的纵坐标都会随时间动态变化。该监控图可以一览整个集群的资源消化状况,对于集群管理员而言,是需要密切关注这部分的监控指标的。当资源接近饱和状态时,可以通过增加节点或扩容磁盘、内存等操作,调节集群的负载能力。

集群资源使用情况

查看历史监控

历史监控数据能够帮助用户观察和建立资源和集群性能的正常标准,KubeSphere 支持查看集群物理资源的 7 天以内的监控数据,包括 CPU 利用率、内存利用率、CPU 平均负载 (1 分钟 / 5 分钟 / 15 分钟)、inode 使用率、磁盘吞吐 (读/写)、IOPS (读/写)、网卡速率 (出/入)、容器组运行状态。KubeSphere 支持自定义时间范围和时间间隔来查看历史监控状况。以下分别简单介绍每一项监控指标的意义。

历史监控

监控指标

CPU 利用率

CPU 利用率 (%),是对一个时间段内 CPU 使用状况的统计,通过这个指标可以看出在某一个时间段内 CPU 被占用的情况。在监控中若发现某个时间段内系统的 CPU 使用率飙高时,首先要定位到是哪个进程占用的 CPU 较高。比如对于 Java 应用来说,可能存在内存泄漏问题或代码存在死循环这类情况。

CPU 利用率

内存利用率

内存是计算机中重要的部件之一,它是与 CPU 进行沟通的桥梁,因此内存的性能对计算机的影响非常大。程序运行时的数据加载、线程并发、I/O缓冲等都依赖于内存,可用内存的大小决定了程序是否能正常运行以及运行的性能,而内存利用率 (%) 可反映集群的内存利用状况和性能。

内存利用率

CPU 平均负载

在说明其监控意义之前,先了解一下 CPU 平均负载的含义,它是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数,注意区别其与 CPU 使用率没有直接关系。那么平均负载为多少时是合理的?实际上,平均负载在理想状况下应该等于 CPU 个数,所以在判断平均负载大小时,先确定系统有几个 CPU。只有平均负载比 CPU 个数多时,就说明系统出现了过载。

问题是,CPU 平均负载在下图中分为 1 分钟 / 5 分钟 / 15 分钟 三个数值,应该怎么看?

通常情况下,三个时间都要看,通过分析系统负载的趋势,能更全面地了解目前的负载状况:

  • 如果 1 分钟 / 5 分钟 / 15 分钟 这三个时间的曲线在某个时间段内基本相似,说明集群的 CPU 负载比较稳定
  • 如果在某个时间段 (或时间点) 1 分钟的值远大于 15 分钟则说明最近 1 分钟的负载呈增加趋势,需要保持观察,一旦 1 分钟的值超过了 CPU 个数可能意味着系统出现过载,就需要进一步分析问题来源了
  • 反之,如果某时段或时刻 1 分钟的值远小于 15 分钟则说明最近 1 分钟内系统的负载在降低,而之前 15 分钟内已产生了很高的负载。

CPU 平均负载

磁盘使用量

KubeSphere 的工作负载比如有状态副本集、守护进程集都依赖于持久化存储服务,并且其自身的一些组件和服务也都需要持久化存储提供支持,而这类后端存储就依赖于磁盘,比如块存储或网络共享存储。为磁盘使用量提供实时的监控环境是保持数据高可靠性的重要部分,因为在 Linux 系统的日常管理中,平台管理员可能会遇到因磁盘空间不足导致数据丢失,甚至系统崩溃等情况。所以,关注系统的磁盘使用情况,并确保文件系统不被占满或滥用是集群管理的重要任务。通过监控磁盘使用量的历史数据,即可预先了解磁盘的使用情况,如果发现磁盘使用量过高,可以通过清理不必要的镜像或容器,来节省磁盘空间。

磁盘使用量

inode 使用率

每个文件都必须有一个 inode,用于储存文件的元信息,比如文件的创建者、创建日期,inode 也会消耗硬盘空间,大量的 cache 小文件也容易导致 inode 资源被使用耗尽。并且,有可能发生 inode 已经用光,但是硬盘还未存满的情况,此时就无法在硬盘上创建新文件。

而 inode 使用率的监控恰好就可以预先发现上述提到的这类情况,帮助用户知道集群 inode 的使用情况,防止因 inode 耗尽使得集群无法正常工作,提示用户及时清理临时文件。

inode 使用率

磁盘吞吐

磁盘监控是 Linux 系统管理中一个非常重要的组成部分,以上提过了磁盘利用率的监控,那么磁盘吞吐和 IOPS 的监控也是不可或缺的,便于集群管理员进行调整数据布局等管理活动以达到优化集群总体性能的目的。磁盘吞吐 (Throughput) 指磁盘传输数据流的速度,单位是 MB/s,传输数据为读出数据和写入数据的和。当传输大块不连续数据的数据,该指标有重要参考作用。

磁盘吞吐

IOPS

IOPS 对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和。当传输小块不连续数据时,该指标有重要参考意义。

IOPS

网卡速率

网卡速率是指网卡每秒钟接收或发送数据的能力,单位是 Mbps (兆位 / 秒)。

网卡速率

容器组运行状态

容器组 (Pod) 运行状态支持筛选 运行中、异常中、已完成 三种状态的容器组总数量。已完成状态通常是任务 (Job) 或定时任务 (CronJob) 这类容器组,异常状态的容器组数量需要引起特别关注。

容器组运行状态

节点用量排行

节点用量排行功能对于主机监控是非常实用的,支持按 CPU 使用率、CPU 平均负载、内存使用率、本地存储用量 (磁盘使用量)、inode 使用率、容器组用量 这一类指标进行排行,支持升序和降序排列。管理员通过按指标进行排序即可快速发现潜在问题或定位某台节点资源不足的情况。比如,按内存使用率降序排行,可以发现排行前两位的主机内存已经非常高了,管理员可以通过扩容内存、打上污点或其它手段来防止这两台主机因内存不足而不工作。

节点用量排行