2017-03-20 14 views
0

1)在kubernetes中,许多组件(即节点)都有要按组查看的元数据。实例:不同kuberentes组件的分片度量标准有哪些常见选项?

  • 显示器CPU使用率
  • 显示器CPU使用率与GPU的所有机器
  • 显示器存储器使用
  • 上标记有AA特定区域中的所有机器(kubelets)显示器存储器使用(即 'ASIA-EAST-1')

等等:对于正被一个节点上测量的任何指标,您可能希望通过存在于所述节点上的任意标签或污点来查看/查询它。

在任何这些情况下,由于指标与标签所有这些数据的发射。

一个解决方案:许多普罗米修斯大师

到目前为止,我认为一个解决办法:单独普罗米修斯主为节点的不同逻辑组。这将允许管理员创建,通过一个任意标签汇总指标主人,即

  • 查询集群的所有节点W /标签= SSD = 16GB,
  • 从该列表中创建一个CSV,
  • 使用它作为端点的普罗米修斯主,
  • 使用,作为一个特定的数据源”。

2)是否有解决这个问题的任何更优雅的解决方案?

上述解决方案是frought恐怖的 - 你正在做大量的工作只是“黑客”的grafana“数据源”的概念,以此来分片的指标了。

3)数越多,疯狂的想法......只是为了帮助种子如何在由主机kubernetes分片指标更广泛的对话......

  • 也许grafana是足够聪明,加上自己的组, 不知何故?
  • 或者grafana可以扩展到prometheus master polling/rollup本身吗?
+0

我真的不明白这个问题,但多台普罗米修斯机器听起来不像一个好的,可扩展的答案。你说'因为指标不是与这些元数据一起发布的 - 我不确定这是为什么。我们使用Telegraf(在Docker中)来发布我们的指标。它会发出我们告诉发出的任何东西,所以我认为你可以用kubelets做到这一点。 但有一点需要记住,一些指标在容器中是没有意义的,比如CPU使用率,因为它是一个主机级别的指标而不是容器级别的指标。 – FuzzyAmi

+0

它是一个简单的问题,希望按节点属性对查询进行分组。一种选择是将所有节点标签和污点与每个节点级度量一起导出,但这可能是数据成本高昂的。另一种选择是让服务器从不同的主机中获取数据 - 这与复杂性成本较高有关。 – jayunit100

+0

谢谢!我明白你在说什么。但这真的是一个问题吗?真的有这么多的节点级度量吗?我认为可能有很多主机级度量标准(对该主机上的所有节点都是通用的),但大多数情况下,节点级度量标准完全来自您正在运行的应用程序 - 这些度量标准的数量可能有限(至少在我的经验中)。 – FuzzyAmi

回答

0

通常你必须每个数据中心一个普罗米修斯,保持相同的故障域之内的事情。如果存在负载问题,您可能会在未来将其分割出来,但仅适用于不太可能的节点导出器统计信息。

https://www.robustperception.io/scaling-and-federating-prometheus/描述了一般的缩小方法。

https://www.robustperception.io/how-to-have-labels-for-machine-roles/地址如何聚合基于类似的东西存在GPU。

我希望区落得作为目标的标签,所以没有特别的考虑,需要在那里。