Prometheus Operator 架構 - 天天5分鐘玩轉 Docker 容器技術(178)

本節討論 Prometheus Operator 的架構。
由於 Prometheus Operator 是基於 Prometheus 的,咱們須要先了解一下 Prometheus。
html

Prometheus 架構

Prometheus 是一個很是優秀的監控工具。準確的說,應該是監控方案。Prometheus 提供了數據蒐集、存儲、處理、可視化和告警一套完整的解決方案。Prometheus 的架構以下圖所示: 架構

官網上的原始架構圖比上面這張要複雜一些,爲了不注意力分散,這裏只保留了最重要的組件。 工具

Prometheus Server 性能

Prometheus Server 負責從 Exporter 拉取和存儲監控數據,並提供一套靈活的查詢語言(PromQL)供用戶使用。 學習

Exporter spa

Exporter 負責收集目標對象(host, container...)的性能數據,並經過 HTTP 接口供 Prometheus Server 獲取。 code

可視化組件 orm

監控數據的可視化展示對於監控方案相當重要。之前 Prometheus 本身開發了一套工具,不事後來廢棄了,由於開源社區出現了更爲優秀的產品 Grafana。Grafana 可以與 Prometheus 無縫集成,提供完美的數據展現能力。 htm

Alertmanager 對象

用戶能夠定義基於監控數據的告警規則,規則會觸發告警。一旦 Alermanager 收到告警,會經過預約義的方式發出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.

Prometheus Operator 架構

Prometheus Operator 的目標是儘量簡化在 Kubernetes 中部署和維護 Prometheus 的工做。其架構以下圖所示:

圖上的每個對象都是 Kubernetes 中運行的資源。

Operator

Operator 即 Prometheus Operator,在 Kubernetes 中以 Deployment 運行。其職責是部署和管理 Prometheus Server,根據 ServiceMonitor 動態更新 Prometheus Server 的監控對象。

Prometheus Server

Prometheus Server 會做爲 Kubernetes 應用部署到集羣中。爲了更好地在 Kubernetes 中管理 Prometheus,CoreOS 的開發人員專門定義了一個命名爲 Prometheus 類型的 Kubernetes 定製化資源。咱們能夠把 Prometheus看做是一種特殊的 Deployment,它的用途就是專門部署 Prometheus Server。

Service

這裏的 Service 就是 Cluster 中的 Service 資源,也是 Prometheus 要監控的對象,在 Prometheus 中叫作 Target。每一個監控對象都有一個對應的 Service。好比要監控 Kubernetes Scheduler,就得有一個與 Scheduler 對應的 Service。固然,Kubernetes 集羣默認是沒有這個 Service 的,Prometheus Operator 會負責建立。

ServiceMonitor

Operator 可以動態更新 Prometheus 的 Target 列表,ServiceMonitor 就是 Target 的抽象。好比想監控 Kubernetes Scheduler,用戶能夠建立一個與 Scheduler Service 相映射的 ServiceMonitor 對象。Operator 則會發現這個新的 ServiceMonitor,並將 Scheduler 的 Target 添加到 Prometheus 的監控列表中。

ServiceMonitor 也是 Prometheus Operator 專門開發的一種 Kubernetes 定製化資源類型。

Alertmanager

除了 Prometheus 和 ServiceMonitor,Alertmanager 是 Operator 開發的第三種 Kubernetes 定製化資源。咱們能夠把 Alertmanager 看做是一種特殊的 Deployment,它的用途就是專門部署 Alertmanager 組件。

學習完架構,下一節咱們將部署 Prometheus Operator。

書籍:

1.《天天5分鐘玩轉Kubernetes》
https://item.jd.com/26225745440.html

2.《天天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html

3.《天天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

相關文章
相關標籤/搜索