Kube Prometheus Operator
  qw1dHH2kI2RK 2023年11月02日 81 0

一.概念

Operator就是将运维软件在k8s上的部署过程简化成一个包,通过一键即可部署,可以达到部署目的。Prometheus Operator通过自定义资源CRD(ServiceMonitor以及PodMonitor和 PrometheusRule)简化prometheus在k8s上的部署过程,同时可以保持prometheus server配置动态更新,适配k8s的pod以及service地址变动的问题。


二.Operator架构图

Kube Prometheus Operator_Server

相关概念:

  • Operator:根据自定义资源(Custom Resource Definition,CRD)来部署和管理Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。
  • Prometheus:Prometheus资源是声明性地描述Prometheus部署的期望状态。
  • Prometheus Server:Operator根据自定义资源Prometheus类型中定义的内容而部署的Prometheus Server集群,这些自定义资源可以看作用来管理Prometheus Server 集群的StatefulSets资源。
  • ServiceMonitor:声明指定监控的服务,描述了一组被Prometheus监控的目标列表。该资源通过标签来选取对应的Service Endpoint,让Prometheus Server通过选取的Service来获取Metrics信息。
  • Service:简单的说就是Prometheus监控的对象。提供给ServiceMonitor选取,让Prometheus Server来获取信息。
  • Alertmanager:Alertmanager也是一个自定义资源类型,由Operator根据资源描述内容来部署Alertmanager集群。

operator通过读取ServiceMonitor以及PodMonitor和 PrometheusRule的配置,生成对应的prometheus server的pod配置文件,继而管理prometheus server


三.安装

1.包含以下组件:

  • Prometheus Operator
  • Prometheus
  • Alertmanager
  • node-exporter
  • Prometheus Adapter
  • kube-state-metrics
  • Grafana

2.步骤:

git clone https://github.com/prometheus-operator/kube-prometheus.git
cd kube-prometheus/
安装 prometheus-operator
$ kubectl apply -f manifests/setup
安装 promethes metric adapter
$ kubectl apply -f manifests/

四.查看部署的pod

[root@k8s-01 kube-prometheus]# kubectl get pods -n monitoring
NAME                                   READY   STATUS    RESTARTS   AGE
alertmanager-main-0                    2/2     Running   0          3m17s
alertmanager-main-1                    2/2     Running   0          3m16s
alertmanager-main-2                    2/2     Running   0          3m15s
grafana-86b55cb79f-htjzl               1/1     Running   0          3m41s
kube-state-metrics-dbb85dfd5-zd2mx     3/3     Running   0          3m41s
node-exporter-4rb6w                    2/2     Running   0          3m40s
node-exporter-fss8l                    2/2     Running   0          3m40s
node-exporter-pmlgw                    2/2     Running   0          3m40s
prometheus-adapter-5cd5798d96-2qpb7    1/1     Running   0          3m40s
prometheus-k8s-0                       3/3     Running   1          2m58s
prometheus-k8s-1                       3/3     Running   1          2m58s
prometheus-operator-5cfbdc9b67-tvzct   2/2     Running   0          3m58s

五.查看生成的crd资源

[root@k8s-01 work]# kubectl get crd |grep coreos
alertmanagers.monitoring.coreos.com     2020-08-27T08:36:24Z
podmonitors.monitoring.coreos.com       2020-08-27T08:36:24Z
prometheuses.monitoring.coreos.com      2020-08-27T08:36:25Z
prometheusrules.monitoring.coreos.com   2020-08-27T08:36:29Z
servicemonitors.monitoring.coreos.com   2020-08-27T08:36:29Z
thanosrulers.monitoring.coreos.com      2020-08-27T08:36:31Z

与Prometheus相关资源的主要有以下几种:

Prometheus

ServiceMonitor

PodMonitor

PrometheusRule 


六.Operator在k8s上的工作流程

Kube Prometheus Operator_git_02

operator通过读取ServiceMonitor以及PodMonitor和 PrometheusRule的配置,生成对应的prometheus server的pod配置,同时Operator还创建alertmanage,然后node exporter采集数据并传入到alertmanage,根据PrometheusRule报警。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

qw1dHH2kI2RK