kubernetes - 核心os项目kube-prometheus和prometheus operator有什么区别?
问题描述
Prometheus Operator https://github.com/coreos/prometheus-operator/项目的 github repo说
Prometheus Operator 使 Prometheus 配置 Kubernetes 原生,并管理和操作 Prometheus 和 Alertmanager 集群。这是关于完整的端到端监控的一部分。
kube-prometheus 将 Prometheus Operator 与清单集合相结合,以帮助开始监控 Kubernetes 本身以及在其上运行的应用程序。
有人可以详细说明吗?
解决方案
我一直有同样的问题/反复碰到这两个问题,但是阅读上述答案并没有为我澄清/我需要一个简短的解释。我发现这个 github 问题让我很清楚。 https://github.com/coreos/prometheus-operator/issues/2619
引用 GitHub 的 nicgirault:
最后我意识到 prometheus-operator chart 正在打包 kube-prometheus 堆栈,但我花了大约 10 个小时才意识到这一点。
**这是我的总结解释:
“kube-prometheus”和“Prometheus Operator Helm Chart”都做同样的事情:
- 基本上是 Ingress/Ingress Controller 概念,适用于 Metrics/Prometheus Operator。
- 两者都是在 Kubernetes 上轻松配置、安装和管理大型分布式应用程序(Kubernetes Prometheus Stack)的一种方式:**
您问的整个 Kube Prometheus 堆栈是什么?
Prometheus、Grafana、AlertManager、CRD(自定义资源定义)、Prometheus Operator(软件机器人应用程序)、IaC 警报规则、IaC Grafana Dashboards、IaC ServiceMonitor CRD(自动生成 Prometheus Metric Collection Configuration 并自动将其热导入 Prometheus Server)
(另外,当我说轻松配置时,我的意思是 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。)
推荐阅读
- windows - 从 PowerShell 中的 .exe URL-Source 获取文件版本
- typescript - 如何在 Vuex 模块中使用 RxJS
- reactjs - 在 match.params 中看不到路由参数
- unity3d - 如何改进 ECS Renderer System v2 以在 Unity 中实例化 50.000 个胶囊?
- python - 如何在用户放大图像后加载图像,但不会
- angular - Angular 遇到问题:类型参数
- list - Flutter List 值被无意更新
- python - 尝试使用 openCV 和 HoughCircles 分割 DICOM 图像中的圆圈时出错
- javascript - 无效的道具:道具“标签”的自定义验证器检查失败
- c# - 如何根据 C# 中的另一个字符串将字符添加到字符串中?