Prometheus Operator部署

传统的Prometheus监控Kubernetes集群,有所缺陷,比如Prometheus、Alertmanager等组件的高可用,虽然可以通过自定义的方式实现,但是不够灵活。那么Prometheus Operator是一种更高级,更云原生的Kubernetes集群监控方式。其项目地址为:https://github.com/prometheus-operator/kube-prometheus

Operator是由Coreos公司开发,用于扩展Kubernetes API的特定应用程序控制器,用来创建、配置和管理复杂的有状态应用,例如数据库、缓存和监控系统。Prometheus Operator就是基于Operator框架开发的管理Prometheus集群的控制器。

目前,CoreOS官方提供了集中Operator的代码实现,其中就包括了Prometheus Opeartor。其官方的架构图如下:
image
其中,Operator是核心部分,作为一个控制器。Operator会创建Prometheus、ServiceMonitor、AlertManager及PrometheusRule这4个CRD资源对象,然后监控并维持这4个CRD资源对象的状态。

  • Prometheus资源对象是作为Prometheus Server存在的。
  • ServiceMonitor资源对象是专门提供metrics数据接口的exporter的抽象。
  • Alertmanager资源对象是对应AlertManager组件的抽象
  • PrometheusRule资源对象是被Prometheus实例使用的告警规则文件的抽象。
    通过以上的4个资源对象,就可以直接对Kubernetes集群直接操作了,上图的Service和ServiceMonitor都是Kubernetes的资源。一个ServiceMonitor可以通过labelSelector匹配一类Service,Prometheus也可以通过labelSelector匹配多个ServiceMonitor,而且Prometheus和AlertManager都是自动感知监控告警配置的变化,需要人为的进行reload操作。Prometheus Operator才是Kubernetes集群监控的终极武器。
posted @ 2022-07-08 09:24  烟雨浮华  阅读(524)  评论(0编辑  收藏  举报