第 1 章 观察环境简介
启用可观察(observability)服务后,您可以使用 Red Hat Advanced Cluster Management for Kubernetes 深入了解受管集群并进行优化。这些信息可以帮助节约成本并防止不必要的事件发生。
1.1. 观察环境
您可以使用 Red Hat Advanced Cluster Management for Kubernetes 深入了解受管集群并进行优化。启用 observability 服务 operator(multicluster-observability-operator
)以监控受管集群的健康状态。在以下部分了解多集群观察服务的架构。
注:按需(on-demand)日志允许工程师实时访问指定 pod 的日志。hub 集群的日志不会被聚合。这些日志可以通过搜索服务以及控制台的其他部分进行访问。
1.1.1. 观察(Observability)服务
默认情况下,产品安装中包含了可观察性(observability)功能,但不启用它。由于对持久性存储的要求,observability 服务默认不会启用。Red Hat Advanced Cluster Management 支持以下 stable 对象存储:
- Amazon S3(或其他 S3 兼容对象存储,如 Ceph)
- Google Cloud Storage
- Azure 存储
- Red Hat OpenShift Container Storage
启用该服务后,observability-endpoint-operator
会自动部署到每个导入或创建的集群中。此控制器从 Red Hat OpenShift Container Platform Prometheus 收集数据,然后将其发送到 Red Hat Advanced Cluster Management hub 集群。
当在 hub 集群中启用可观察性时,通过将 hub 集群作为名为 local-cluster
的受管集群来收集指标。
注:在 Red Hat Advanced Cluster Management 中,只有 Red Hat OpenShift Container Platform 4.x 集群支持 metrics-collector
。
observability 服务部署了一个 Prometheus AlertManager 实例,它允许通过第三方应用程序转发警报。它还包括一个 Grafana 实例,通过仪表板(静态)或数据探索启用数据视觉化。Red Hat Advanced Cluster Management 支持 Grafana 的版本 6.4.x。您还可以设计自己的 Grafana 仪表板。如需更多信息,请参阅指定 Grafana 仪表板。
您可以通过创建自定义 记录规则 或 警报规则来自定义可观察性服务。
有关启用可观察性的更多信息,请参阅启用可观察性服务。
1.1.1.1. Observability 证书
Observability 证书会在过期时自动续订。查看以下列表以了解证书自动更新时的影响:
- hub 集群上的组件会自动重启以检索更新的证书。
- Red Hat Advanced Cluster Management 将更新的证书发送到受管集群。
metrics-collector
重新启动以挂载更新的证书。注:
metrics-collector
可以在证书被删除之前和之后将指标推送到 hub 集群。有关在集群中刷新证书的更多信息,请参阅刷新受管证书。
1.1.1.2. 指标类型
默认情况下,OpenShift Container Platform 使用 Telemetry 服务向红帽发送指标数据。以下附加指标包括在 Red Hat Advanced Cluster Management 中,它们包含在遥测(telemetry)中,但不会显示在 Red Hat Advanced Cluster Management Observe environments overview 仪表板中:
-
visual_web_terminal_sessions_total
在 hub 集群上收集。 -
acm_managed_cluster_info
在每个受管集群上收集并发送到 hub 集群。
从 OpenShift Container Platform 文档中了解使用遥测来收集并发送哪些指标类型。如需更多信息,请参阅 Telemetry 收集的信息。
1.1.1.3. Observability pod 容量请求
Observability 组件需要 2636mCPU 和 11388Mi 内存来安装可观察性服务。查看以下表了解启用了 observability-addons
的五个受管集群的 pod 容量请求:
表 1.1. Observability pod 容量请求
Deployment 或 StatefulSet | 容器名称 | CPU(mCPU) | 内存(Mi) | Replicas | Pod 总计 CPU | Pod 内存总量 |
---|---|---|---|---|---|---|
alertmanager | alertmanager | 4 | 200 | 3 | 12 | 600 |
config-reloader | 4 | 25 | 3 | 12 | 75 | |
grafana | grafana | 4 | 100 | 2 | 8 | 200 |
grafana-dashboard-loader | 4 | 50 | 2 | 8 | 100 | |
observability-observatorium-observatorium-api | observatorium-api | 20 | 128 | 2 | 40 | 256 |
observability-observatorium-thanos-compact | thanos-compact | 100 | 512 | 1 | 100 | 512 |
observability-observatorium-thanos-query | thanos-query | 300 | 1024 | 2 | 600 | 2048 |
observability-observatorium-thanos-query-frontend | thanos-query-frontend | 100 | 256 | 2 | 200 | 512 |
observability-observatorium-thanos-receive-controller | thanos-receive-controller | 4 | 32 | 1 | 4 | 32 |
observability-observatorium-thanos-receive-default | thanos-receive | 300 | 512 | 3 | 900 | 1536 |
observability-observatorium-thanos-rule | thanos-rule | 50 | 512 | 3 | 150 | 1536 |
configmap-reloader | 4 | 25 | 3 | 12 | 75 | |
observability-observatorium-thanos-store-memcached | memcached | 45 | 128 | 3 | 135 | 384 |
exporter | 5 | 50 | 3 | 15 | 150 | |
observability-observatorium-thanos-store-shard | thanos-store | 100 | 1024 | 3 | 300 | 3072 |
observatorium-operator | observatorium-operator | 100 | 100 | 1 | 100 | 100 |
rbac-query-proxy | rbac-query-proxy | 20 | 100 | 2 | 40 | 200 |
1.1.2. Observability 服务中使用的持久性存储
安装 Red Hat Advanced Cluster Management 时会创建以下持久性卷:
表 1.2. 持久性卷表列表
持久性卷名称 | 目的 |
alertmanager |
Alertmanager 在其存储中保存 |
thanos-compact | 紧凑器需要本地磁盘空间来存储用于处理的中间数据,以及 bucket 状态缓存。所需空间取决于基础块的大小。紧凑器必须有足够的空间下载所有源块,然后在磁盘上构建紧凑块。磁盘上的数据可以安全地在重新启动之间删除,并且应该是首次尝试使崩溃循环解压器。不过,建议为紧凑器永久磁盘提供压缩器持久磁盘,以便在重启期间高效地使用存储桶状态缓存。 |
thanos-rule | thanos 标尺通过以固定间隔发出查询来评估 Prometheus 记录和警报规则。规则结果以 Prometheus 2.0 存储格式写回磁盘。 |
thanos-receive-default | Thanos 接收器接受传入数据(Prometheus 远程写入请求),并将这些数据写入 Prometheus TSDB 的一个本地实例。TSDB 块定期(每 2 小时)上传到对象存储,以进行长期存储和压缩。 |
thanos-store-shard | 它主要充当一个 API 网关,因此不需要大量的本地磁盘空间。它在启动时加入 Thanos 集群,并公告它可以访问的数据。它在本地磁盘上保留少量的、与所有远程块相关的信息,并与存储桶保持同步。这些数据通常在重启时会被安全地删除,这会增加启动时间。 |
注:时间序列历史数据存储在对象存储中。Thanos 使用对象存储作为指标和与其相关的元数据的主存储。有关对象存储和降级的详情,请参阅启用可观察性服务。