kubernetes - 从“运营商”集群监控 k8s 应用程序
问题描述
我们有几个 K8S 集群,我们需要从一个操作员集群(集群 A)监控我们在每个集群上使用 Prometheus 来监控集群本身,现在我们还想从应用程序的特定 api 监控,它会告诉我们是否集群(根据我们的具体服务)是否有功能,我不是在谈论监控集群,我们希望操作员在每个集群上监控 3 个应用程序(所有 3 个应用程序都部署在所有被监控的集群上)
集群 A(操作员)应监控集群 B、C、D 等上的服务/应用程序
例如,运营商集群将调用clusterA中已部署的应用程序 host://app1/status
来获取0或1的状态,并将状态保存在某个数据库中。(可能是 prometehusDB)并在集群外报告它们。
目前,经过一番搜索,我找到了这个选项,但也许还有更多我不知道的选项
创建我自己的程序(在 golang 中),它将像一个 cronjob 并且将使用 prom lib 在操作员集群中运行。
https://github.com/prometheus/client_golang
我的意思是运行一个休息调用并使用 Prometheus apitsdb
通过 go "github.com/prometheus/client_golang/prometheus/promhttp" 代码将状态存储在 Prometheus 中。但不确定如何..
- 联邦??
此外,如果我能够将集群中的所有数据收集到 operator 集群中,我应该如何以及在哪里保存它?在普罗米修斯数据库 tsdb 中?另一种方式 ?
支持我们的案例的最佳实践应该是什么?我们应该怎么做?
解决方案
我已经看到你虽然关于使用灭霸,但它还不错,我们已经在生产中运行了一段时间。但它不符合我们的要求,你的看起来对我们很熟悉,所以我建议你看看 VictoriaMetrics 你在这里有一篇不错的文章:https ://medium.com/faun/comparing-thanos-to- victoriametrics-cluster-b193bea1683
他们对 Slack 的支持也是一大亮点!祝你好运!
推荐阅读
- flutter - ValueListenableBuilder:监听多个值
- php - PHP/Oracle - OCI 不喜欢我的数据类型?
- reactjs - useState 在 useEffect 中没有按预期工作
- c# - Unity 画布缩放器阻止 GL.Vertex
- rust - 对于不带任何参数的方法来说,显式生命周期有什么意义?
- python - CSV文件在Python中将列转置为行
- angular - 角度材料:缺少柏树属性 data-cy 的绑定
- javascript - 渲染图形后更改边缘标签
- flutter - “在构建期间调用 setState() 或 markNeedsBuild()”错误尝试在消费者小部件(提供程序包)内的导航器中推送替换
- java - NetBeans 不下载?