Prometheus?Operator架構(gòu)介紹
Prometheus 架構(gòu)
本節(jié)討論 Prometheus Operator 的架構(gòu)。
因?yàn)?Prometheus Operator 是基于 Prometheus 的,我們需要先了解一下 Prometheus。
Prometheus 是一個(gè)非常優(yōu)秀的監(jiān)控工具。準(zhǔn)確的說(shuō),應(yīng)該是監(jiān)控方案。Prometheus 提供了數(shù)據(jù)搜集、存儲(chǔ)、處理、可視化和告警一套完整的解決方案。
Prometheus 的架構(gòu)如下圖所示:
官網(wǎng)上的原始架構(gòu)圖比上面這張要復(fù)雜一些,為了避免注意力分散,這里只保留了最重要的組件。
Prometheus Server
Prometheus Server 負(fù)責(zé)從 Exporter 拉取和存儲(chǔ)監(jiān)控?cái)?shù)據(jù),并提供一套靈活的查詢語(yǔ)言(PromQL)供用戶使用。
Exporter
Exporter 負(fù)責(zé)收集目標(biāo)對(duì)象(host, container...)的性能數(shù)據(jù),并通過(guò) HTTP 接口供 Prometheus Server 獲取。
可視化組件
監(jiān)控?cái)?shù)據(jù)的可視化展現(xiàn)對(duì)于監(jiān)控方案至關(guān)重要。以前 Prometheus 自己開發(fā)了一套工具,不過(guò)后來(lái)廢棄了,因?yàn)殚_源社區(qū)出現(xiàn)了更為優(yōu)秀的產(chǎn)品 Grafana。Grafana 能夠與 Prometheus 無(wú)縫集成,提供完美的數(shù)據(jù)展示能力。
Alertmanager
用戶可以定義基于監(jiān)控?cái)?shù)據(jù)的告警規(guī)則,規(guī)則會(huì)觸發(fā)告警。一旦 Alermanager 收到告警,會(huì)通過(guò)預(yù)定義的方式發(fā)出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.
Prometheus Operator 架構(gòu)
Prometheus Operator 的目標(biāo)是盡可能簡(jiǎn)化在 Kubernetes 中部署和維護(hù) Prometheus 的工作。其架構(gòu)如下圖所示:
圖上的每一個(gè)對(duì)象都是 Kubernetes 中運(yùn)行的資源。
Operator
Operator 即 Prometheus Operator,在 Kubernetes 中以 Deployment 運(yùn)行。其職責(zé)是部署和管理 Prometheus Server,根據(jù) ServiceMonitor 動(dòng)態(tài)更新 Prometheus Server 的監(jiān)控對(duì)象。
Prometheus Server
Prometheus Server 會(huì)作為 Kubernetes 應(yīng)用部署到集群中。為了更好地在 Kubernetes 中管理 Prometheus,CoreOS 的開發(fā)人員專門定義了一個(gè)命名為 Prometheus
類型的 Kubernetes 定制化資源。我們可以把 Prometheus
看作是一種特殊的 Deployment,它的用途就是專門部署 Prometheus Server。
Service
這里的 Service 就是 Cluster 中的 Service 資源,也是 Prometheus 要監(jiān)控的對(duì)象,在 Prometheus 中叫做 Target。每個(gè)監(jiān)控對(duì)象都有一個(gè)對(duì)應(yīng)的 Service。比如要監(jiān)控 Kubernetes Scheduler,就得有一個(gè)與 Scheduler 對(duì)應(yīng)的 Service。當(dāng)然,Kubernetes 集群默認(rèn)是沒(méi)有這個(gè) Service 的,Prometheus Operator 會(huì)負(fù)責(zé)創(chuàng)建。
ServiceMonitor
Operator 能夠動(dòng)態(tài)更新 Prometheus 的 Target 列表,ServiceMonitor 就是 Target 的抽象。比如想監(jiān)控 Kubernetes Scheduler,用戶可以創(chuàng)建一個(gè)與 Scheduler Service 相映射的 ServiceMonitor 對(duì)象。Operator 則會(huì)發(fā)現(xiàn)這個(gè)新的 ServiceMonitor,并將 Scheduler 的 Target 添加到 Prometheus 的監(jiān)控列表中。
ServiceMonitor 也是 Prometheus Operator 專門開發(fā)的一種 Kubernetes 定制化資源類型。
Alertmanager
除了 Prometheus 和 ServiceMonitor,Alertmanager 是 Operator 開發(fā)的第三種 Kubernetes 定制化資源。我們可以把 Alertmanager
看作是一種特殊的 Deployment,它的用途就是專門部署 Alertmanager 組件。
學(xué)習(xí)完架構(gòu),下一節(jié)我們將部署 Prometheus Operator。
以上就是Prometheus Operator架構(gòu)介紹的詳細(xì)內(nèi)容,更多關(guān)于Prometheus Operator架構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
k8s?pod和service網(wǎng)絡(luò)暴露詳解
這篇文章主要介紹了借助iptables的路由轉(zhuǎn)發(fā)功能,打通k8s集群內(nèi)的pod和service網(wǎng)絡(luò),與外部網(wǎng)絡(luò)聯(lián)通,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Kubernetes?Ingress實(shí)現(xiàn)細(xì)粒度IP訪問(wèn)控制
這篇文章主要為大家介紹了Kubernetes?Ingress實(shí)現(xiàn)細(xì)粒度IP訪問(wèn)控制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04kubelet為cadvisor添加namespace/pod/container標(biāo)簽示例詳解
這篇文章主要為大家介紹了kubelet為cadvisor添加namespace/pod/container標(biāo)簽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09k8s跨服務(wù)調(diào)用入門到實(shí)戰(zhàn)示例詳解
這篇文章主要為大家介紹了k8s跨服務(wù)調(diào)用入門到實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09