我们正在使用Prometheus进行指标收集。 Prometheus将作为容器部署,它将从各种来源收集指标并将数据存储在本地计算机(容器正在运行的地方)中。如果保存容器的节点发生故障,则Prometheus会将所有指标都存储在该本地计算机中,因此该指标将与该节点一起丢失。 Kubernetes会检测到容器故障并在一个健康的节点中跨越该容器,但是我们在旧节点中丢失了数据。

为了解决这个问题,我们要么提出了两个想法

  • 我们必须将整个Prometheus与Kubernetes分离。
  • 我们需要确保Prometheus服务器和Prometheus服务器数据的高可用性。另外,我们需要确保对Prometheus进行身份验证。此处存在一些安全问题,因为Prometheus默认情况下不随auth一起提供prometheus-basic-auth,我们必须使用反向代理来处理身份验证。 Prometheus需要与Kubernetes内部组件进行对话,因此我们也需要为此提供一种安全的方法。
  • 我们必须单独解耦存储,例如:类似于NFS的协议(protocol)(在Kubernetes术语中为PV)。
  • 我们需要确保Prometheus数据的高可用性。需要保护NFS。

  • 我们应该使用哪一个?

    如果还有其他行业解决方案,也可以分享。如果以上任何一项有未提及的副作用,请告诉我。

    最佳答案

    短期答案使用PV,但可能不使用NFS,您不需要多位作者。一个简单的网络块设备(EBS,GCPDisk等)就可以了。从长远来看,HA Prometheus是一个复杂的话题,请查看Thanos项目中的一些想法和技术。 Grafana Labs的同仁也一直在尝试一些新的HA布局。期望完整的HA Prometheus是一个非常庞大的项目,需要您深入了解内部。

    关于docker - 如何保护普罗米修斯数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58892596/

    10-16 06:05