prometheusoperator架构-每天5分钟玩转docker容器技术(178)

cloudman6      2022-02-13     184

关键词:

本节讨论 Prometheus Operator 的架构。
因为 Prometheus Operator 是基于 Prometheus 的,我们需要先了解一下 Prometheus。

Prometheus 架构

Prometheus 是一个非常优秀的监控工具。准确的说,应该是监控方案。Prometheus 提供了数据搜集、存储、处理、可视化和告警一套完整的解决方案。Prometheus 的架构如下图所示:

技术分享图片

官网上的原始架构图比上面这张要复杂一些,为了避免注意力分散,这里只保留了最重要的组件。

Prometheus Server

Prometheus Server 负责从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用。

Exporter

Exporter 负责收集目标对象(host, container...)的性能数据,并通过 HTTP 接口供 Prometheus Server 获取。

可视化组件

监控数据的可视化展现对于监控方案至关重要。以前 Prometheus 自己开发了一套工具,不过后来废弃了,因为开源社区出现了更为优秀的产品 Grafana。Grafana 能够与 Prometheus 无缝集成,提供完美的数据展示能力。

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

技术分享图片






prometheusoperator-每天5分钟玩转docker容器技术(177)

前面我们介绍了Kubernetes的两种监控方案WeaveScope和Heapster,它们主要的监控对象是Node和Pod。这些数据对Kubernetes运维人员是必须的,但还不够。我们通常还希望监控集群本身的运行状态,比如Kubernetes的APIServer、Scheduler、ControllerMana... 查看详情

quartz求助:每天定点执行一次,该怎么做?

springquartz求助cron表达式每天定点执行一次,如0点执行此、1点执行、2点执行以此类推,到23点每天凌晨2点 002**?和每天隔一小时0**/1**?例1:每隔5秒执行一次:*/5****?例2:每隔5分执行一次:0*/5***?在26分、29分、33分执行一次:0... 查看详情

设置定时任务为每天凌晨2点执行和每小时执行一次

每天凌晨2点 002**?和每天隔一小时0**/1**? 例1:每隔5秒执行一次:*/5****?例2:每隔5分执行一次:0*/5***?在26分、29分、33分执行一次:026,29,33***?例3:每天半夜12点30分执行一次:0300**?(注意日期域为0不是24)每天凌晨1点执... 查看详情

prometheus架构-每天5分钟玩转docker容器技术(83)

...和告警一套完整的解决方案。让我们先来看看Prometheus的架构。架构Prometheus架构如下:650)this.width=650;"title="https://image.ipaiban.com/upload-ueditor-image-20171019-1 查看详情

prometheus架构-每天5分钟玩转docker容器技术(83)

...和告警一套完整的解决方案。让我们先来看看Prometheus的架构。架构Prometheus架构如下:官网上的原始架构图比上面这张要复杂一些,为了集中大家的注意力,我只保留了最重要的组件。PrometheusServerPrometheusServer负责从Export 查看详情

quartz定时任务时间设置(代码片段)

每天凌晨2点002**?和每天隔一小时0**/1**?例1:每隔5秒执行一次:*/5****?例2:每隔5分执行一次:0*/5***?在26分、29分、33分执行一次:026,29,33***?例3:每天半夜12点30分执行一次:0300**?(注意日期域为0不是24)每天凌晨1点执行一次:00... 查看详情

helm架构-每天5分钟玩转docker容器技术(161)

在实践之前,我们先来看看Helm的架构。Helm有两个重要的概念:chart和release。chart是创建一个应用的信息集合,包括各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等。chart是应用部署的自包含逻辑单元。可以将chart... 查看详情

helm架构-每天5分钟玩转docker容器技术(161)

在实践之前,我们先来看看Helm的架构。Helm有两个重要的概念:chart和release。chart是创建一个应用的信息集合,包括各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等。chart是应用部署的自包含逻辑单元。可以将chart... 查看详情

spring怎么设置定时任务为每天凌晨2点执行和每小时执行一次?

每天凌晨2点 002**?和每天隔一小时0**/1**? 例1:每隔5秒执行一次:*/5****?例2:每隔5分执行一次:0*/5***?在26分、29分、33分执行一次:026,29,33***?例3:每天半夜12点30分执行一次:0300**?(注意日期域为0不是24)每天凌晨1点执... 查看详情

quartzcrontrigger如何定义间隔65分钟执行一次表达式

...0分钟,不知道你说的是这样写吗?谢谢!参考技术A0012**?每天12点触发01510?**每天10点15分触发01510**?每天10点15分触发01510**?*每天10点15分触发01510**?20052005年每天10点15分触发0*14**?每天下午的2点到2点59分每分触发00/514**?每天下午的2... 查看详情

软考——系统架构师架构系分软设的区别和联系

🔎这里是【软考——系统架构师】,关注我考试轻松过线👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️文章目录👀三科相同点👀三科不同点--上午题👀... 查看详情

通过例子理解k8s架构-每天5分钟玩转docker容器技术(122)

为了帮助大家更好地理解Kubernetes架构,我们部署一个应用来演示各个组件之间是如何协作的。执行命令kubectl run httpd-app --image=httpd --replicas=2等待一段时间,应用部署完成。Kubernetes部署了deployment httpd-app,有两... 查看详情

通过例子理解k8s架构-每天5分钟玩转docker容器技术(122)

为了帮助大家更好地理解Kubernetes架构,我们部署一个应用来演示各个组件之间是如何协作的。执行命令kubectl run httpd-app --image=httpd --replicas=2等待一段时间,应用部署完成。Kubernetes部署了deployment httpd-app,有两... 查看详情

spring配置定时任务设置为每天凌晨2点执行和每小时执行一次如何配置。

...;><value>0012**?</value></property></bean>这是每天12点执行。我需要每天凌晨2点执行。和每天隔一小时执行一次怎么写?每天凌晨2点 002**?和每天隔一小时0**/1**?例1:每隔5秒执行一次:*/5****?例2:每隔5分执行一次... 查看详情

每天5分钟玩转容器技术整理目录

...5)容器What,Why,How-每天5分钟玩转容器技术(6) Docker架构详解-每天5分钟玩转容器技术(7)Docker组件如何协作?- 查看详情

chatgpt给你讲讲如何部署prometheusoperator

文章目录​​问题:如何部署prometheusoperator​​​​问题:如何完善地部署prometheusoperator​​​​问题:如何完善地部署prometheusoperator并给出详细地部署流程​​问题:如何部署prometheusoperator来自ChatGPT的回复:第一次:问题:如何完善... 查看详情

cron表达式范例:每隔5秒执行一次:*/5****?

...例:每隔5秒执行一次:*/5****?每隔1分钟执行一次:0*/1***?每天23点执行一次:0023**?每天凌晨1点执行一次:001**?每月1号凌晨1点执行一次:0011*?每月最后一天23点执行一次:0023L*?每周星期天凌晨1点实行一次:001?*L在26分、29分、33... 查看详情

部署graylog日志系统-每天5分钟玩转docker容器技术(92)

...视化Dashboard。本节将实践用Graylog来管理Docker日志。Graylog架构Graylog架构如下图所示:650)this.width=650;"title="https://image.ipaiban.com/upload-ueditor-image-20171109-15101990360350 查看详情