1.2. 了解监控堆栈
OpenShift Container Platform 监控堆栈基于 Prometheus 开源项目及其更广的生态系统。监控堆栈包括以下组件:
默认平台监控组件。在 OpenShift Container Platform 安装过程中,默认会在
openshift-monitoring
项目中安装一组平台监控组件。这为包括 Kubernetes 服务在内的核心集群组件提供了监控。默认监控堆栈还为集群启用远程健康状态监控。下图中的默认安装部分说明了这些组件。
-
用于监控用户定义项目的组件。在选择性地为用户定义的项目启用监控后,会在
openshift-user-workload-monitoring
项目中安装其他监控组件。这为用户定义的项目提供了监控。下图中的用户部分说明了这些组件。
1.2.1. 默认监控组件
默认情况下,OpenShift Container Platform 4.13 监控堆栈包括以下组件:
组件 | 描述 |
---|---|
Cluster Monitoring Operator | Cluster Monitoring Operator (CMO) 是监控堆栈的核心组件。它部署、管理和自动更新 Prometheus 和 Alertmanager 实例、Thanos Querier、Teleme Client 和 metrics 目标。CMO 由 Cluster Version Operator (CVO) 部署。 |
Prometheus Operator |
|
Prometheus | Prometheus 是 OpenShift Container Platform 监控堆栈所依据的监控系统。Prometheus 是一个时间序列数据库和用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。 |
Prometheus Adapter |
Prometheus Adapter(上图中的 PA)负责转换 Kubernetes 节点和 Pod 查询以便在 Prometheus 中使用。转换的资源指标包括 CPU 和内存使用率指标。Prometheus Adapter 会公开用于 Pod 横向自动扩展的集群资源指标 API。Prometheus Adapter 也用于 |
Alertmanager | Alertmanager 服务处理从 Prometheus 接收的警报。Alertmanager 还负责将警报发送到外部通知系统。 |
|
|
|
|
|
|
Thanos querier | Thanos Querier 将 OpenShift Container Platform 核心指标和用于用户定义项目的指标聚合在单个多租户接口下,并选择性地进行重复数据删除。 |
Telemeter Client | Telemeter Client 将数据的子部分从平台 Prometheus 实例发送到红帽,以便为集群提供远程健康状态监控。 |
监控堆栈中的所有组件都由堆栈监控,并在 OpenShift Container Platform 更新时自动更新。
监控堆栈的所有组件都使用集群管理员集中配置的 TLS 安全配置集设置。如果您配置了使用 TLS 安全设置的监控堆栈组件,组件使用全局 OpenShift Container Platform apiservers.config.openshift.io/cluster
资源中的 tlsSecurityProfile
字段中已存在的 TLS 安全配置集设置。
1.2.2. 默认监控目标
除了堆栈本身的组件外,默认的监控堆栈还会监控额外的平台组件。
以下是监控目标的示例:
- CoreDNS
- etcd
- HAProxy
- 镜像 registry
- Kubelets
- Kubernetes API 服务器
- Kubernetes 控制器管理器
- Kubernetes 调度程序
- OpenShift API 服务器
- OpenShift Controller Manager
- Operator Lifecycle Manager (OLM)
- 具体目标列表可能会因集群功能和安装的组件而异。
- 每个 OpenShift Container Platform 组件负责自己的监控配置。对于 OpenShift Container Platform 组件监控的问题,请针对具体组件(而非常规的监控组件)创建一个Jira 程序错误报告。
其他 OpenShift Container Platform 框架组件也可能会公开指标。如需详细信息,请参阅相应的文档。
其他资源
1.2.3. 用于监控用户定义的项目的组件
OpenShift Container Platform 包括对监控堆栈的可选增强,供您用于监控用户定义的项目中的服务和 Pod。此功能包括以下组件:
组件 | 描述 |
---|---|
Prometheus Operator |
|
Prometheus | Prometheus 是为用户定义的项目提供监控的监控系统。Prometheus 将警报发送到 Alertmanager 进行处理。 |
Thanos Ruler | Thanos Ruler 是 Prometheus 的一个规则评估引擎,作为一个独立的进程来部署。在 OpenShift Container Platform 中,Thanos Ruler 为监控用户定义的项目提供规则和警报评估。 |
Alertmanager | Alertmanager 服务处理从 Prometheus 和 Thanos Ruler 接收的警报。Alertmanager 还负责将用户定义的警报发送到外部通知系统。部署该服务是可选的。 |
在为用户定义的项目启用监控后,会部署上表中的组件。
所有这些组件都由堆栈监控,并在 OpenShift Container Platform 更新时自动更新。
1.2.4. 用户定义的项目的监控目标
为用户定义的项目启用监控后,您可以监控:
- 通过用户定义的项目中的服务端点提供的指标。
- 在用户定义的项目中运行的 Pod。
1.2.5. 了解高可用性集群中的监控堆栈
默认情况下,在多节点集群中,以下组件以高可用性(HA)模式运行,以防止数据丢失和服务中断:
- Prometheus
- Alertmanager
- Thanos Ruler
- Thanos querier
- Prometheus Adapter
组件在两个 pod 之间复制,每个 pod 在单独的节点上运行。这意味着监控堆栈可以容忍一个 pod 的丢失。
- Prometheus 处于 HA 模式
- 这两个副本都独立提取同一目标并评估相同的规则。
- 副本不会相互通信。因此,数据在 pod 之间可能会有所不同。
- 处于 HA 模式的 Alertmanager
- 这两个副本将相互同步通知和静默状态。这样可确保每个通知至少发送一次。
- 如果副本间无法通信,或者在接收端有问题,则通知仍然会被发送,但可能会重复。
Prometheus、Alertmanager 和 Thanos Ruler 是有状态组件。为确保高可用性,您必须为它们配置持久性存储。
其他资源