功能介绍

自 v2.2.0 起可用

通过 Rancher 您可以使用先进的开源监控解决方案Prometheus来监控集群节点,Kubernetes 组件和软件部署的状态和过程。

Prometheus 简介

根据官方文档介绍,Prometheus 提供了时序型数据,这种时序型数据是指:一个带有时间戳(时刻数值)的数值流,其中任何一个数值都属于同一个指标和同一组标签(维度)。

因此您可以配置 Prometheus 去收集集群级别或者项目级别的监控数据。本章节将介绍如何启用对集群的监控。有关对项目的监控,可以浏览项目管理部分

Prometheus 让您可以查看 Rancher 及其纳管的各个 Kubernetes 集群的指标。通过时间戳,您可以使用 Rancher UI 或者 Grafana(这是一种与分析工具一起部署的分析查看平台)通过易于阅读的 Chart 和可视化仪表盘查询这些指标。

通过查看 Prometheus 从集群 control-plane,节点和部署的工作负载中刮取的监控数据,您可以掌握集群中发生的所有事情。然后,您可以使用这些数据进行分析,从而更好地进行管控工作:在系统紧急情况发生之前阻止它们,制定维护策略,还原崩溃的服务器等。

在集群和项目之间的多租户管理也是支持的。

监控访问

通过 Prometheus,您可以在 Rancher 上在集群级别和项目级别进行监控。对于每个启用了监控的集群和项目,Rancher 都会部署一个 Prometheus 服务。

  • 集群监控可让您查看 Kubernetes 集群的运行状况。Prometheus 从下面的集群组件中收集指标,您可以在 Chart 中查看这些指标。

  • 项目监控允许您查看在具体某个项目内运行的 Pods 的状态。项目级别的 Prometheus 可以从本项目内部署的工作负载中采集自定义指标,这些工作负载必须通过 HTTP 和 TCP/UDP 暴露指标。

启用集群监控

作为系统管理员集群所有者,您可以通过配置来监控您的 Kubernetes 集群。

先决条件: 需要打开以下 TCP 端口以进行指标抓取:

PortNode typeComponent
9796WorkerNode exporter
10254WorkerNginx Ingress Controller
10250Worker/ControlplaneKubelet
10251ControlplaneKube scheduler
10252ControlplaneKube controller manager
2379EtcdEtcd server

要在 Kubernetes v1.21 以上版本上安装监控,您需要迁移到监控 V2。

  1. 全局页面中导航到您想要配置的集群。
  2. 在导航栏中下拉工具,选择监控
  3. 查看资源消耗建议,以确保您有足够的资源用于 Prometheus 及其相关组件。根据需要,配置 Prometheus 选项
  4. 单击启动

结果:将部署 Prometheus 服务以及两个监控应用商店应用。这两个监控应用商店应用是cluster-monitoringmonitoring-operator,它们会被添加到集群的系统(System)项目中。当这两个应用处于Active后,您可以通过 Rancher 集群仪表盘开始查看集群指标或直接从 Grafana中查看。

Grafana 实例的默认用户名和密码为 “admin/admin”。然而,Grafana 仪表盘是通过 Rancher 认证代理提供服务的,因此只有当前通过认证进入 Rancher 服务器的用户才能访问 Grafana 仪表盘

资源消耗

启用集群监控时,需要确保您的工作节点和 Prometheus Pod 有足够的资源。下表提供了关于资源消耗方面的指南。在较大型的部署中,强烈建议将监控组件(Prometheus 及其相关组件)调度到集群中的专用节点上。

Prometheus Pods 的资源消耗

该表是 Prometheus Pod 的资源消耗,它基于集群中所有节点的数量。节点数包括工作节点,control-plane 和 etcd 节点。总磁盘空间分配应通过在集群级别设置的rate * retention来估算。启用集群级别监控时,应该根据您的情况,调整 CPU 和内存的限制值及预留值。

集群节点数目CPU (milli CPU)内存磁盘
5500650 MB~1 GB/Day
5020002 GB~5 GB/Day
25640006 GB~18 GB/Day

集群监控中其他的 Pod 资源的要求:

工作负载容器CPU 预留值内存预留值CPU 限制值内存限制值是否可配置
Prometheusprometheus750m750Mi1000m1000MiY
prometheus-proxy50m50Mi100m100MiY
prometheus-auth100m100Mi500m200MiY
prometheus-config-reloader--50m50MiN
rules-configmap-reloader--100m25MiN
Grafanagrafana-init-plugin-json-copy50m50Mi50m50MiY
grafana-init-plugin-json-modify50m50Mi50m50MiY
grafana100m100Mi200m200MiY
grafana-proxy50m50Mi100m100MiY
Kube-State Exporterkube-state100m130Mi100m200MiY
Node Exporterexporter-node200m200Mi200m200MiY
Operatorprometheus-operator100m50Mi200m100MiY

其他 Pods 的资源消耗

除了 Prometheus Pod 之外,还部署了一些组件,这些组件在工作节点上还需要额外的资源:

PodCPU (milli CPU)内存 (MB)
Node Exporter (每个节点均部署)10030
Kube State Cluster Monitor100130
Grafana100150
Prometheus Cluster Monitoring Nginx5050