Prometheus监控-第6天

7.12 Prometheus Operator部署/管理Prometheus Server

一、Prometheus Operator & Kube-Prometheus & Helm chart 部署区别
Prometheus Operator 是 Kubernetes 原生的工具,它通过将 Prometheus 资源定义为 Kubernetes 对象(CRD)来简化 Prometheus 集群的管理。它自动化了在 Kubernetes 中配置和扩展 Prometheus 实例时涉及的常见任务,并提供了在 Kubernetes 环境中部署、配置和管理 Prometheus 的简单方式。

  • 通过 kubectl 或 Kubernetes API 创建 Prometheus Operator Custom Resource
    Definition (CRD)。

  • 使用 kubectl 或 YAML 文件创建 Prometheus 实例的定义。

  • Prometheus Operator 观察配置更改并创建、更新或删除 Prometheus 实例。

  • 官方安装文档:https://prometheus-operator.dev/docs/user-guides/getting-started/
    需要Kubernetes版本至少在v1.16.x以上。
    官方Github地址:https://github.com/prometheus-operator/prometheus-operator

kube-prometheus 提供基于Prometheus & Prometheus Operator完整的集群监控配置示例,包括多实例Prometheus & Alertmanager部署与配置及node exporter的metrics采集,以及scrape Prometheus target各种不同的metrics endpoints,并提供Alerting rules一些示例,触发告警集群潜在的问题。

  • 使用 YAML 文件或 Helm chart 安装 Kube-Prometheus。

  • Kube-Prometheus 部署 Prometheus、Alertmanager、Grafana 和 Pushgateway等组件。

  • 使用 Prometheus Operator 观察和管理 Prometheus 和相关组件。

    • 官方安装文档:https://prometheus-operator.dev/docs/prologue/quick-start/
      安装要求:https://github.com/prometheus-operator/kube-prometheus#compatibility
      官方Github地址:https://github.com/prometheus-operator/kube-prometheus

helm chart prometheus-community/kube-prometheus-stack 提供类似kube-prometheus的功能,但是该项目是由Prometheus-community来维护。

  • 安装 Helm 并添加 Prometheus Helm chart 存储库。
  • 使用 Helm 安装 Prometheus chart,包括 Prometheus、Alertmanager 和 Pushgateway
    等组件。
  • 具体信息参考https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#kube-prometheus-stack

总结:三者部署 Prometheus 的区别

  • Prometheus Operator 可以更加自动化的管理 Prometheus 集群;
  • Kube-Prometheus 则提供了更加全面的监控解决方案,包括 Prometheus、Grafana 和 Alertmanager
    等组件;
  • Helm chart 则通过一个命令即可快速部署 Prometheus 及其相关组件,但无法方便地进行各个组件的管理。
  • Kube-Prometheus:目前是k8s集群监控的主流项目,主要使用Prometheus做集群监控,使用Prometheus
    Operator做监控的运维管理,也就是以上二者的结合。

二、Prometheus-Operator CRD资源
2.1、CRD 全称是 Custom Resource Definition
什么是 CRD?
以 Deployment 为实例,Deployment 没有直接创建 Pod,而是管理 RS,而 RS 管理 Pod,这就是控制器模式。控制器模式允许基于已有的资源定义更高阶的控制器,用来实现更复杂的能力。

特点:

  • CRD 本身是 Kubernetes 的一种资源,允许用户自定义新的资源类型;
  • CRD 允许用户基于已有的 Kubernetes 资源,例如 Deployment、Configmap 等,拓展集群能力;
  • CRD 可以自定义一套成体系的规范,自造概念;
  • CRD 本身是一种 Kubernetes 内置的资源类型,即自定义资源的定义,用于描述用户定义的资源是什么样子。
$ kubectl get crd
NAME                                             CREATED AT
applications.app.k8s.io                          2022-08-12T10:01:21Z
authconfigs.enterprise.gloo.solo.io              2022-08-25T03:54:14Z

2.2、Prometheus-Operator CRD
Prometheus Operator的本职就是一组用户自定义的CRD资源以及Controller的实现,Prometheus Operator负责监听这些自定义资源的变化,并且根据这些资源的定义自动化的完成如Prometheus Server自身以及配置的自动化管理工作。主要包括以下几个功能:

Kubernetes 自定义资源:使用 Kubernetes CRD 来部署和管理 Prometheus、Alertmanager 和相关组件。
简化的部署配置:直接通过 Kubernetes 资源清单配置 Prometheus,比如版本、持久化、副本、保留策略等等配置。
Prometheus 监控目标配置:基于熟知的 Kubernetes 标签查询自动生成监控目标配置,无需学习 Prometheus 特地的配置。

上面架构图中,各组件以不同的方式运行在 Kubernetes 集群中(之前都是用配置文件来配置,现在都是通过资源对象):

<
CRD 名称 作用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值