【问题标题】:What is the difference between the core os projects kube-prometheus and prometheus operator?核心os项目kube-prometheus和prometheus operator有什么区别?
【发布时间】:2019-01-29 13:49:08
【问题描述】:

Prometheus Operator https://github.com/coreos/prometheus-operator/ 项目的 github repo 说

Prometheus Operator 使 Prometheus 配置 Kubernetes 原生,并管理和操作 Prometheus 和 Alertmanager 集群。这是关于完整的端到端监控的一部分。

kube-prometheus 将 Prometheus Operator 与清单集合相结合,以帮助开始监控 Kubernetes 本身以及在其上运行的应用程序。

谁能详细说明一下?

【问题讨论】:

    标签: kubernetes prometheus-operator


    【解决方案1】:

    我一直有同样的问题/反复碰到这两个问题,但是阅读上述答案并没有为我澄清/我需要一个简短的解释。我发现这个 github 问题让我很清楚。 https://github.com/coreos/prometheus-operator/issues/2619

    引用 GitHub 的 nicgirault:

    终于意识到prometheus-operator chart是在打包的 kube-prometheus 堆栈,但我花了大约 10 个小时来玩 意识到这一点。

    **这是我的总结解释:
    “kube-prometheus”和“Prometheus Operator Helm Chart”都做同样的事情:

    1. 基本上是 Ingress/Ingress Controller 概念,应用于 Metrics/Prometheus Operator。
    2. 两者都是在 Kubernetes 上轻松配置、安装和管理大型分布式应用程序(Kubernetes Prometheus Stack)的一种方式:**

      您问的整个 Kube Prometheus 堆栈是什么?
      Prometheus、Grafana、AlertManager、CRDs(自定义资源定义)、Prometheus Operator(软件机器人应用程序)、IaC Alert Rules、IaC Grafana Dashboards、IaC ServiceMonitor CRDs(自动生成 Prometheus Metric Collection Configuration 和自动热导入)它进入普罗米修斯服务器)
      (另外,当我说轻松配置时,我的意思是 1,000-10,000++ 行易于人类理解的配置,可生成和自动管理 10,000-100,000 行机器配置 + 具有合理默认值的东西 + 监控配置自助服务,分布式配置分片与操作员/控制器结合配置 + 从漂亮的人类可读配置生成详细的样板机器可读配置。

    如果他们达到相同的最终目标,你可能会问他们之间有什么区别?
    https://github.com/coreos/kube-prometheus
    https://github.com/helm/charts/tree/master/stable/prometheus-operator
    基本上,CoreOS 的 kube-prometheus 使用 Ksonnet 部署 Prometheus Stack。
    Prometheus Operator Helm Chart 包装了 kube-prometheus / 实现了相同的最终结果,但使用了 Helm。

    那么使用哪一个?
    没关系 + 他们达到相同的最终结果 + 从 1 开始并切换到另一个应该不会很困难。

    Helm 往往更快地学习/发展基本的掌握。

    Ksonnet 更难学习/掌握基本技能,但是:

    • 它更具有幂等性(更适合 CICD 自动化)(但只有 99% 幂等与 99.99% 幂等的区别。)
    • 具有内置模板,这意味着如果您有多个集群,您需要管理/希望始终保持彼此一致。然后,您可以利用具有大量代码重用的 DRY 代码库,利用 ksonnet 的模板来管理 Kube Prometheus Stack 的多个实例(用于多个环境)。 (如果您只有几个 env 并且 Prometheus 不需要经常更改,那么手动保持 4 个 helm 值文件同步并非完全不合理。我还看到 Jinja2 模板用于模板化 helm 值文件,但是如果您'会打扰你不妨考虑ksonnet。)

    【讨论】:

      【解决方案2】:

      Kubernetes operator 是 Kubernetes 特定的应用程序(pod),可以自动配置、管理和优化其他 Kubernetes 部署。它们被实现为自定义控制器。

      根据coreOS官方网站:

      Operator 是 CoreOS 引入的一类软件,用于操作其他软件,将人类收集的操作知识放入软件中。

      prometheus operator 提供了一种在 Kubernetes 集群上部署配置和监控 prometheus 实例的简单方法。为此,prometheus operator 在 kubernetes 中引入了三种自定义资源定义(CRD)。

      1. 普罗米修斯
      2. 警报管理器
      3. 服务监视器

      现在,借助上述 CRD,您可以通过提供 kind: Prometheus 直接创建一个 prometheus 实例,并且该 prometheus 实例已准备好服务,同样您可以为 AlertManager 做。如果没有这个,你将不得不为 prometheus 设置部署,包括它的镜像、配置和更多的东西。

      Prometheus Operator 可让在 Kubernetes 上运行 Prometheus 尽可能简单,同时保留 Kubernetes 原生配置选项。

      现在,kube-prometheus 实现了 prometheus 运算符,并为您提供最少的 yaml 文件,通过运行单个命令来创建 prometheusalertmanagergrafana 的基本设置。

      git clone https://github.com/coreos/prometheus-operator.git
      kubectl apply -f prometheus-operator/contrib/kube-prometheus/manifests/
      

      通过在 kube-prometheus 目录中运行上述命令,您将获得一个 monitoring 命名空间,其中将有一个 alertmanager 实例,prometheusgrafana 用于 UI。这对于大多数基本实现来说已经足够了,如果您需要根据您的应用程序的更多细节,您可以添加更多您需要的导出器 yaml。

      Kube-prometheus 更多的是对 prometheus-operator 项目的贡献,它很好地实现了 prometheus operator 功能,并为您的 kubernetes 集群提供了完整的监控设置。您可以从 kube-prometheus 开始,然后根据您的应用程序从那里扩展监控设置的功能。

      您可以了解更多关于 prometheus-operator here

      【讨论】:

      【解决方案3】:

      截至今天,2020 年 9 月 28 日,这是在 Kubernetes 集群中安装 Prometheus 的方式 https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#kube-prometheus-stack

      【讨论】:

        【解决方案4】:

        根据官方文档,kube-prometheus-stack 是对 prometheus-operator 的重命名。 据我了解,kube-prometheus-stack 还预装了 grafana 仪表板和 prometheus 规则。

        注意:这个图表以前被命名为 prometheus-operator 图表,现在 重命名以更清楚地反映它安装了 kube-prometheus 项目栈,其中 Prometheus Operator 只是其中一个组件。

        取自https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-15
          • 2020-10-08
          • 1970-01-01
          • 1970-01-01
          • 2022-08-16
          • 2021-05-15
          • 1970-01-01
          相关资源
          最近更新 更多